Diskette im Laufwerk erkennen
-
Hi,
ich bin auf der Suche nach einer Lösung um festzustellen, ob sich eine Diskette
im Laufwerk A: befindet. Das feststellen an sich ist mitCreateFile("\\\\.\\A:\\", GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);und prüfen des Rückgabewertes ja kein Problem, jedoch hat die Sache für mich
einen entscheidenden Haken:Bei einem leeren Laufwerk hört man dieses hässliche Rattern.
Da Windows lt. MSDN keine WM_DEVICECHANGE Nachricht für Floppies unterstützt
müsste ich periodisch den Zustand überprüfen und da stört das Rattern gewaltig.Kennt jemand eine andere Möglichkeit, das vorhandensein einer Diskette "lautlos" festzustellen?
Gruß,
Colonius
-
das ist technisch sicherlich nicht möglich, da das Diskettenlaufwerk ja erst durch das "Rattern" mitbekommt, ob sich eine diskette im laufwerk befindet.
Da kann Windows dir auch nicht weiterhelfen.
-
Du kannst das aber rein theoretisch(Ich weiß nicht wozu du das programm brauchst) über die Hardeware seite lösen, du kannst an den Ausschieber/werfer des Disekttenlaufwerks einen Kontakt anbauen/einsetzen und diesen an einem I/O bzw COM port anschließen, und dann überprüfen ob der Knopf drinnen ist oder nicht..
Ist nicht schwer, aber macht eben nur sinn, wenn du die anwendung nur "für dich" schreibst.
-
Die Information ob eine Diskette eingelegt wurde brauche ich für einen Systemdienst, der dem User nach einlegen einer besonders "päparierten" Diskette bestimmte Aktionen erlaubt. (Bei uns ist für Dummuser der Zugriff auf Wechsellaufwerke/COM-Ports/USB-Schnittstellen und Floppy gesperrt)
Bei ca. 20000 APC´s Bundesweit wäre der Aufwand mit der Hardwarelösung
leider zu hoch.Colonius
-
Ähm, muss es den umbedingt eine Diskette sein?
Wie wäre es mit einem USB-Stick, einer Flash-Karte oder sowas...Du kannst dir auch mal anschauen wie Linux (z.B. RedHat9) das mit dem Root-Passwort macht:
Wenn man als Nicht-Root irgendetwas machen will (z.B. Programm installieren) kommt ein Passwortfenster. Wenn man das Passwort eingegeben hat erscheint unten in der Taskleiste ein Schlüssel. Klickt man wieder auf den Schlüssel ist der Root-Status wieder weg und man ist wieder "Dummuser".Coolcat
P.S. Root == Admin
-
Hallo Leute,
ja, leider muss es unbedingt eine Diskette sein.
Der Dummuser benutzt ein spezielles Abrechnungsprogramm, welches die Ergebnisse
auf Diskette abspeichert. Diese Diskette wird einer anderen Behörde übersandt, welche NUR Disketten akzeptiert. (Kaum zu glauben, aber wahr...)Ich bin der Lösung aber schon sehr nahe gekommen. Zu dem Dienst wird auf den Maschinen noch eine GUI installiert, die mit dem Service über NamedPipes
kommuniziert. Das bedeutet, der Dienst pollt nicht ständig auf der Floppy rum und erzeugt "Rattern", sondern nur dann wenn der User es explizit versucht.
Ich denke, das wird die beste Lösung sein.Vielen Dank für eure Anregungen,
Colonius