So führen Sie ein AHK-Skript aus, nachdem eine externe USB-EHDD erkannt wurde

So führen Sie ein AHK-Skript aus, nachdem eine externe USB-EHDD erkannt wurde

Ich versuche, ein Skript in AHK (Auto Hot Key) zu erstellen, um festzustellen, ob eine externe Festplatte angeschlossen ist, und dann den nächsten Befehl im Skript auszuführen. Angenommen, unten ist das Skript.

A
B
C
D
E

Ich möchte, dass A bis C ein Skript sind, um zu prüfen, ob ein externes Laufwerk angeschlossen ist. Wenn ja, geht der Befehl zu Zeile D, andernfalls zu Zeile E. Ich habe bereits nach einigen Skripten gesucht, aber ohne Erfolg. Habe das Skript in diesem ausprobiertVerknüpfungals Referenz, aber ich bin nicht sicher, wie ich es entsprechend meinen Anforderungen ändern kann.

Antwort1

Wenn Sie die Bezeichnung Ihrer externen Festplatte(n) kennen, können Sie Folgendes verwenden:

; get a list of all the hard drives. Hard drives are considered as FIXED by AHK
DriveGet, drives, list, FIXED
Loop, Parse, drives  ; loop through each drive letter
{
  DriveGet, DriveLabel, Label, %A_LoopField%:  ; get the drive label

  ; IF DriveLabel not contains External HDD1 label,External HDD2 label
  IF (DriveLabel != "External HDD label")  ; If you want to use only one External HDD
    Continue

  ExternalDriveLetter := A_LoopField  ; get the drive letter of the last found

   ;    or 
  ; get the drive letter of the first found
   ; ExternalDriveLetter = %A_LoopField%
     ; Break

}
IfExist, %ExternalDriveLetter%:
    Run %ExternalDriveLetter%:  ; go to line D
else
    MsgBox, No External HDD is connected        ; go to line E

Antwort2

Loop
{
    WinWaitActive, DiskInDrive   ; put the title in here for the dialog box to wait for indefinitely -- will need to exit from tray

    ; put code here to execute any time the window is active
    ; after code is done, program will loop and wait again

}

Wenn das Dialogfeld nicht standardmäßig aktiv wird, können Sie vor der obigen WinWaitActive-Anweisung auch WinWait und WinActivate verwenden.

verwandte Informationen