–
正常情況下,關機對話框是有explorer.exe調用,直接使用rundll32調用時無法觸發(fā)相關命令。
既然使用explorer.exe調用可以,我們可以嘗試使用腳本來實現(xiàn)。實現(xiàn)原理:
激活explorer.exe
按ALT+F4
編寫VBS腳本如下(將下述內容另存為shutdown.vbs):
Dim objWMI,wsh
Dim colProcesses,objProcess
pid=0
set objWMI = GetObject( “winmgmts:{impersonationLevel=impersonate}\. rootcimv2” )
set colProcesses = objWMI.ExecQuery( “SELECT * FROM Win32_Process” & _
” WHERE Name=’explorer.exe'” )
for Each objProcess In colProcesses
pid = objProcess.ProcessId
Next
set wsh = WScript.CreateObject(“WScript.Shell”)
wsh.AppActivate pid
wsh.sendKeys “%{F4}”
上述腳本運行環(huán)境為:XP SP2
其他環(huán)境也可能正常工作,不過對于有多個explorer.exe進程的系統(tǒng),就可能不正常工作了,如開了遠程終端服務的多用戶環(huán)境下。