安装USB时运行

时间:2016-02-07 11:29:15

标签: autoit usb-drive autorun

Microsoft禁用自动运行。但是,为了运行扫描和备份文件(在file.cmd中定义),我找到了这个AutoIt脚本:

$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,我完全没问题。

1 个答案:

答案 0 :(得分: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