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