GetVolumeInformation hängt bei Diskettenlaufwerk
-
Hallo Leute ich stehe mal wieder vor einem kleinem Problem. Ich lese mit Hilfe von GetVolumeInformation alle Laufwerke aus (Lokale).
Dies wird mit nem Timer in regelmässigen abständen gemacht. Funktioniert auf bisher 5 Rechnern Problemlos.Bei dem 6ten jetzt ist aber ein Problem aufgetaucht. An diesem Rechner gibt es ein Diskettenlaufwerk. Jedesmal wenn mein Prog mit GetVolumeInformation ausliesst friert mein Prog für 2-5 sec ein wegen diesem.
Im Prinzip brauche ich die Diskettenlaufwerke nicht also die kann er beim prüfen aus lassen.Kann ich irgendwie vorher ausfragen ob es ein Diskettenlaufwerk ist? um es dann ausschliessen zu lassen.
-
Du kannst vorher mit GetDriveType herrausfinden um welchen Typ es sich handelt
http://msdn.microsoft.com/en-us/library/aa364939(VS.85).aspx
-
Hab ich schon versucht
Das bringt mir leider nicht viel weil ein Diskettenlaufwerk 2 zurückliefert also DRIVE_REMOVABLE
und das kann dann immer noch mehreres sein aber nicht eindeutig diskettenlaufwerk.
-
Hallo
Ich finde du gehst das falsch an. Pack deine GetVolumeInformation-Abfrage für jedes Laufwerk in einen extra Thread. Dann kann dein Programm bereits die Daten für die "schnellen" Laufwerke anzeigen, während die "langsamen" Laufwerke eben noch als unbekannt angezeigt werden. Dein Programm ist dann nicht mehr blockiert.
bis bald
akari
-
Vielen Dank für die Hilfe,
Habe es jetzt so gelöst da man im Programm das Diskettenlaufwerk bzw den Laufwerksbuchstaben ausschliessen kann.
Das Hauptproblem ist das die laufwerke alle 3 sec geprüft werden müssen.
Aber funktioniert ja jetzt wunderbar.