Floppy-Medium ohne Motoranlauf



  • Tach Leutz,

    nachdem ich schon einiges programmiert habe 😉 bin ich irgendwann zu dem Punkt angekommen, daß das Anlaufen des Motors im Floppy-Laufwerk für den Nutzer nervig ist 😮

    Daher meine Frage: Wie kann man erkennen, ob im Floppy-Laufwerk ein Medium (also die Floppy-Diskette) eingelegt ist. Und das ohne den Motor anlaufen zu müssen 😕

    Bei dieser Fragestellung ist es erstmal zweitrangig ob es sich um ein gültiges bzw. formatiertes Medium handelt, oder ob es überhaupt ein FAT-Dateisystem hat usw.

    Hintergrund dieser Frage: Ich weiß aus meinen alten "Bastler"-Zeiten, daß auf dem 34pol. Floppy-Kabel eine Signalleitung gibt die dem Floppy-Controller signalisiert, daß eine Lichtschranke unterbrochen ist und damit ein Medium eingelegt ist.
    (Nicht zu verwechseln mit den anderen Lichtschranken, welche sowohl die Position des Schreibschutzschiebers als auch die Aufzeichnungsformate DD/HD/ED des Mediums unterscheidet).

    Daher hoffe auf den entscheidenden Tipp von Euch, daß ich mit der WinAPI (oder evtl. WMI?) an diese Info rankommen kann.

    Martin



  • Hmmm, habe ich jemals eine Chance, zu erkennen ob eine Floppy-Disk eingelegt ist oder nicht? Ohne den Laufwerksmotor anwerfen zu müssen?

    In 99,5% der Fälle befindet sich nämlich keine Diskette im Laufwerk -> störendes Motorlaufen. Und damit verbunden sind unnötige Wartezeiten 😡

    Martin

    P.S.: Über WMI habe ichs erfolglos probiert. Gibt es evtl. andere Abfragemethoden?



  • *Falsches Forum* Gehört nach "Themen rund um den PC!

    In 99,5% der Fälle befindet sich nämlich keine Diskette im Laufwerk -> störendes Motorlaufen. Und damit verbunden sind unnötige Wartezeiten 😡

    Also, da kann nun doch der Motor nix dafür. Der Läuft nur an, wenn Du das Laufwerk abfragst. Wenn Du aber in 99,5% das Laufwerk abfragst, ohne vorher eine Disk einzulegen, stimmt mit Deinem Workflow etwas nicht... 😉
    Im übrigen, soweit ich weiß, gibt es keine andere Möglichkeit. Das macht sogar das BIOS so: Wenn beim Booten keine Floppy Disk eingelegt ist, greift es auf die Festplatte zu. Deswegen rappelt beim Booten immer erstmal das Diskettenlaufwerk (bei "normaler" Bottsequenz A:, C:)



  • Wenn Du aber in 99,5% das Laufwerk abfragst, ohne vorher eine Disk einzulegen, stimmt mit Deinem Workflow etwas nicht... 😉

    Tja, der Kunde ist genervt, weil er viel zu viele Laufwerksbuchstaben hat. Und jedesmal beim Exportieren der Daten auf Flash-Karte den passenden Buchstaben suchen muß.
    Alleine das USB-Zigfach-Kartenlesegerät belegt 5 Laufwerksbuchstaben H: bis L: usw.

    So möchte ich ihm also nur noch die verfügbaren Laufwerke anbieten die auch tatsächlich ein Medium (hier Floppy-Disk oder Flash-Karte) eingelegt haben.

    Meine Vorgehensweise ist die:
    *-Verfügbare Laufwerksbuchstaben mit GetLogicalDrives() abklopfen
    -Die gefundenen Laufwerke per GetDriveType() auf den Typ DRIVE_REMOVABLE hin aussortieren, darunter fallen neben Floppy-Disk auch die Kartenlesegeräte, USB-Sticks, ZIP-Laufwerke usw.
    -Mit GetVolumeInformation() überprüfe ich ob in dem Laufwerk auch tatsächlich ein Medium eingelegt ist.
    -Und diese Laufwerke präsentiere ich dem Kunden als Auswahlbox zum exportieren der Daten.
    *
    Ich kann andererseits auch nicht pauschal die Laufwerke A: und B: einfach ignorieren, da:
    a) es PCs ohne Diskettenlaufwerke gibt, bei denen A: und B: anderweitig verwendet werden können (z.B. USB-Stick Zuweisung oder Mapping).
    b) der Kunde doch ein Diskettenlaufwerk wählt, falls ihm keine Flash-Karte greifbar ist.

    Gibt es vielleicht eine andere Möglichkeit?

    Martin



  • Da Du A und B nicht weglassen kannst (bei uns sind die nie mit was anderem belegt), würde ich sagen nein.

    Windows selbst "nervt" ja ganauso beim Hoch- bzw. Herunterfahren.

    Tja, der Kunde ist genervt, weil er viel zu viele Laufwerksbuchstaben hat. Und jedesmal beim Exportieren der Daten auf Flash-Karte den passenden Buchstaben suchen muß.

    Vielleicht hilft es dir, wenn du dir das Laufwerk vom letzten Zugriff (z.B. in einer Ini, Registry...) merkst und es dann beim erneuten Zugriff als erstes angeboten wird?



  • Tester2 schrieb:

    Vielleicht hilft es dir, wenn du dir das Laufwerk vom letzten Zugriff (z.B. in einer Ini, Registry...) merkst und es dann beim erneuten Zugriff als erstes angeboten wird?

    Ich werde wohl diesen Weg als Workaround gehen.

    Danke für Eure Hilfen!
    Martin



  • rödelt halt das laufwerk, wen juckts? soll der kunde sein floppy laufwerk ausbauen, wenns ihn stört 😛


Log in to reply