Öffnet/schließt ein CD- oder DVD-Laufwerk, oder ändert die Datenträgerbezeichnung eines Laufwerks.
Drive, Unterbefehl , Wert1, Wert2
Die Parameter Unterbefehl, Wert1 und Wert2 sind voneinander abhängig und können wie folgt genutzt werden.
Geben Sie für Unterbefehl Folgendes an:
Ändert die Datenträgerbezeichnung eines bestimmten Laufwerks.
Drive, Label, Laufwerk , NeueBezeichnung
Laufwerk ist der Laufwerksbuchstabe, gefolgt von einem Doppelpunkt und einem optionalen umgekehrten Schrägstrich (UNC-Netzwerkpfade und zugeordnete Laufwerke wären auch möglich). Lässt man NeueBezeichnung weg, bekommt das Laufwerk eine leere Bezeichnung zugewiesen.
Mit dem Label-Unterbefehl von DriveGet kann die Bezeichnung eines Laufwerks abgerufen werden, wie z. B. DriveGet, AusgabeVar, Label, C:
Verhindert, dass ein bestimmtes Laufwerk ausgefahren werden kann.
Drive, Lock, Laufwerk
Laufwerk ist der Laufwerksbuchstabe, gefolgt von einem Doppelpunkt und einem optionalen umgekehrten Schrägstrich (UNC-Netzwerkpfade und zugeordnete Laufwerke wären auch möglich).
Die meisten Laufwerke können nicht im geöffneten Zustand gesperrt werden. Allerdings könnte die Sperrung immer noch erfolgen, nachdem das Laufwerk geschlossen wurde.
Dieser Unterbefehl hat keine Auswirkung auf Laufwerke, die keine Sperrung zulassen (trifft auf die meisten schreibgeschützten Laufwerke zu).
Mit dem Unlock-Unterbefehl unten kann ein Laufwerk entsperrt werden. Die Sperrung eines Laufwerks bleibt auch nach Beendigung des verantwortlichen Skripts bestehen. Andere Skripte, Programme oder ein Neustart des Systems können die Sperrung wieder aufheben.
Wenn das angegebene Laufwerk nicht vorhanden ist oder die Sperrfunktion nicht unterstützt, wird ErrorLevel auf 1 gesetzt. Ansonsten wird es auf 0 gesetzt.
Bewirkt, dass ein bestimmtes Laufwerk wieder ausgefahren werden kann.
Drive, Unlock, Laufwerk
Laufwerk ist der Laufwerksbuchstabe, gefolgt von einem Doppelpunkt und einem optionalen umgekehrten Schrägstrich (UNC-Netzwerkpfade und zugeordnete Laufwerke wären auch möglich).
Dieser Unterbefehl muss mehrmals ausgeführt werden, falls das Laufwerk mehrmals gesperrt wurde (zumindest bei einigen Laufwerken). Wenn man beispielsweise Drive, Lock, D:
dreimal ausführen würde, wäre wiederum dreimal Drive, Unlock, D:
notwendig, um die Sperrung aufzuheben. Genau aus diesem Grund und der Tatsache, dass der gesperrte Zustand eines Laufwerks nicht ermittelt werden kann, wäre es ratsam, diesen Zustand in eine Variable zu speichern, um die Übersicht zu behalten.
Öffnet oder schließt ein CD- oder DVD-Laufwerk.
Drive, Eject , Laufwerk, 1
Um andere Medien- oder Gerätetypen auszufahren, schauen Sie sich Beispiel #3 im unteren Bereich dieser Seite an.
Laufwerk ist der Laufwerksbuchstabe, gefolgt von einem Doppelpunkt und einem optionalen umgekehrten Schrägstrich. Lässt man Laufwerk weg, wird das Standard-CD/DVD-Laufwerk verwendet. Um das Laufwerk auszufahren/zu öffnen, lassen Sie den letzten Parameter weg. Um das Laufwerk einzufahren/zu schließen, geben Sie 1 im letzten Parameter an; zum Beispiel: Drive, Eject, D:, 1
.
Während dieser Unterbefehl das Laufwerk ein- oder ausfährt, wartet das Skript. Befindet sich das Laufwerk bereits in richtiger Position (offen oder geschlossen), wird ErrorLevel auf 0 gesetzt (also "kein Fehler").
Dieser Unterbefehl wird eventuell nicht funktionieren, wenn das angegebene Laufwerk ein Netzwerk- oder Nicht-CD/DVD-Laufwerk ist. Wenn es in solchen Fällen oder aus einem anderen Grund fehlschlägt, wird ErrorLevel auf 1 gesetzt.
Es ist möglich, den vorherigen Zustand des Laufwerks zu ermitteln. Messen Sie einfach die Zeit, die der Unterbefehl zum Ausführen benötigt. Der folgende Hotkey beispielsweise schaltet das Laufwerk jeweils in den entgegengesetzten Zustand (offen oder geschlossen):
#c:: Drive, Eject ; Wenn der Befehl schnell ausgeführt wurde, war das Laufwerk wahrscheinlich schon ausgefahren. ; In diesem Fall kann es eingefahren werden: if (A_TimeSinceThisHotkey < 1000) ; Passen Sie diese Zeit an, falls notwendig. Drive, Eject,, 1 return
Mit DriveGet kann der Medienstatus eines CD- oder DVD-Laufwerks (läuft, angehalten, offen, usw.) ermittelt werden.
[v1.1.04+]: Dieser Befehl ist in der Lage, bei Misserfolg eine Ausnahme auszulösen. Weitere Informationen finden Sie unter Laufzeitfehler.
ErrorLevel wird bei Misserfolg auf 1 und bei Erfolg auf 0 gesetzt.
Dieses Beispiel ist eine alternative Methode, um neben CD/DVD noch andere Typen von Medien/Geräten ausfahren zu können. Fügen Sie in der ersten Zeile den gewünschten Laufwerksbuchstaben ein (alle anderen Zeilen können ignoriert werden).
LaufwBuchst := "I:" ; Tragen Sie hier das Laufwerk ein, das ausgefahren werden soll. hVolume := DllCall("CreateFile" , "Str", "\\.\" . LaufwBuchst , "UInt", 0x80000000 | 0x40000000 ; GENERIC_READ | GENERIC_WRITE , "UInt", 0x1 | 0x2 ; FILE_SHARE_READ | FILE_SHARE_WRITE , "UInt", 0 , "UInt", 0x3 ; OPEN_EXISTING , "UInt", 0, "UInt", 0) if (hVolume != -1) { DllCall("DeviceIoControl" , "UInt", hVolume , "UInt", 0x2D4808 ; IOCTL_STORAGE_EJECT_MEDIA , "UInt", 0, "UInt", 0, "UInt", 0, "UInt", 0 , "UIntP", dwBytesReturned ; Unbenutzt. , "UInt", 0) DllCall("CloseHandle", "UInt", hVolume) }