Я пытаюсь создать скрипт в AHK(Auto Hot Key), чтобы определить, подключен ли внешний жесткий диск, а затем выполнить следующую команду в скрипте. Предположим, ниже приведен сценарий.

A
B
C
D
E

Я хочу, чтобы от A до C был сценарий, чтобы проверить, подключен ли внешний диск. Если «Да», команда перейдет к строке D или к строке E. Я уже проверил некоторые сценарии, но не повезло. пробовал скрипт в этой ссылке в качестве ссылки, но не уверен, как изменить на основе моего требования.

2 ответа2

0

Если вы знаете метку вашего внешнего жесткого диска (ов), вы можете использовать это:

; 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
0
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

}

Если диалоговое окно не становится активным по умолчанию, вы также можете использовать WinWait и WinActivate перед приведенным выше оператором WinWaitActive.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .