2016-02-07 77 views
-1

Microsoft禁用自動運行。但是運行掃描和備份文件(file.cmd定義),我發現這個AutoIt腳本:安裝USB時運行

$DBT_DEVICEARRIVAL = "0x00008000" 
$WM_DEVICECHANGE = 0x0219 
GUICreate("") 
GUIRegisterMsg($WM_DEVICECHANGE , "MyFunc") 

Func MyFunc($hWndGUI, $MsgID, $WParam, $LParam) 
    If $WParam == $DBT_DEVICEARRIVAL Then 
     MsgBox(4096, "Info", "My Drive has been Inserted, Backup My Files!") 
    EndIf 
EndFunc 

While 1 
    $GuiMsg = GUIGetMsg() 
WEnd 

它顯示每當USB驅動器,對其中的腳本,在被插入一個消息框,我編譯將它複製到我的USB驅動器。不久,我插入,出現MsgBox()

我代替:

MsgBox(4096, "Info", "My Drive has been Inserted, Backup My Files!")

有:

Run ("F:\path\to\my\file.cmd")

但其他計算機分配不同的驅動器號到USB驅動器。我如何編輯腳本以便運行file.cmd不需要分配驅動器號F:?如果有人能把它翻譯成Python,我完全可以。

回答

0

您需要循環所有可移動驅動器並搜索需要運行的 文件。

$DBT_DEVICEARRIVAL = "0x00008000" 
$WM_DEVICECHANGE = 0x0219 

GUICreate("") 
GUIRegisterMsg($WM_DEVICECHANGE , "MyFunc") 


While True 
    $GuiMsg = GUIGetMsg() 
WEnd 


Func MyFunc($hWndGUI, $MsgID, $WParam, $LParam) 

    If $WParam == $DBT_DEVICEARRIVAL Then 

     $Drives = DriveGetDrive("REMOVABLE") 
     For $i = 1 to $Drives[0] 
      $file = $Drives[$i] & "\path\to\my\file.cmd" 
      If FileExists($file) Then Run($file) 
     Next 

    EndIf 

EndFunc