DriveEject / DriveRetract

Öffnet oder schließt ein bestimmtes CD- oder DVD-Laufwerk. DriveEject kann auch einen Wechseldatenträger auswerfen.

DriveEject Laufwerk
DriveRetract Laufwerk

Parameter

Laufwerk

Typ: Zeichenkette

Wenn weggelassen, wird standardmäßig das erste CD- oder DVD-Laufwerk verwendet, das beim Iterieren von A bis Z gefunden wurde (es wird eine Ausnahme ausgelöst, wenn keines gefunden wurde). Andernfalls geben Sie einen Laufwerksbuchstaben an, optional gefolgt von einem Doppelpunkt oder einem Doppelpunkt und umgekehrtem Schrägstrich. Zum Beispiel "D", "D:" oder "D:\".

Dies kann auch ein Gerätepfad im Format "\\?\Volume{...}" sein, der durch Ausführen von mountvol in der Befehlszeile ermittelt werden kann. In diesem Fall muss dem Laufwerk kein Laufwerksbuchstabe zugewiesen sein.

Fehlerbehandlung

Bei Misserfolg wird eine Ausnahme ausgelöst, sofern dieser erkannt wurde.

Diese Funktionen funktionieren wahrscheinlich nicht bei Netzlaufwerken oder Laufwerken, bei denen die Option "Auswerfen" im Explorer fehlt. Die intern verwendeten Systemfunktionen melden nicht immer Misserfolg, d.h. es kann eine Ausnahme ausgelöst werden oder auch nicht.

Bemerkungen

Während diese Funktion das Laufwerk öffnet oder schließt, wartet das Skript.

Es ist möglich, den vorherigen Zustand des Laufwerks zu ermitteln. Messen Sie einfach die Zeit, die die Funktion zum Ausführen benötigt, wie im Beispiel unten.

Das Auswerfen eines Wechseldatenträgers entspricht grundsätzlich der Verwendung der Kontextmenüoption "Auswerfen" im Explorer, außer dass keine Warnung angezeigt wird, wenn Dateien in Benutzung sind. Im Gegensatz zur Option "Hardware sicher entfernen" wird dies nur das via Laufwerk identifizierte Volume dismounten, nicht das gesamte Gerät.

DriveEject und DriveRetract entsprechen den Kontrollcodes IOCTL_STORAGE_EJECT_MEDIA und IOCTL_STORAGE_LOAD_MEDIA, die auch einen Effekt auf andere Laufwerkstypen als CD/DVD, z.B. Bandlaufwerke, haben können.

DriveGetStatusCD, Drive-Funktionen

Beispiele

Öffnet das erste CD- oder DVD-Laufwerk.

DriveEject()

Schließt das erste CD- oder DVD-Laufwerk.

DriveRetract()

Wirft alle Wechseldatenträger aus (außer CD/DVD-Laufwerke).

Loop Parse DriveGetList("REMOVABLE")
{
    if MsgBox(A_LoopField ": auswerfen, auch wenn Dateien geöffnet sind?",, "y/n") = "yes"
        DriveEject(A_LoopField)
}
else
    MsgBox "Kein Wechseldatenträger gefunden."

Definiert einen Hotkey, der das Laufwerk in den entgegengesetzten Zustand (offen oder geschlossen) schaltet, abhängig von der Ausführungsdauer der Funktion.

#c::
{
    DriveEject
    ; Wurde die Funktion schnell ausgeführt, war das Laufwerk vmtl. schon offen.
    ; In diesem Fall kann es geschlossen werden:
    if (A_TimeSinceThisHotkey < 1000)  ; Passen Sie den Wert an, falls nötig.
        DriveRetract
}