VBS脚本调用系统的关机对话框代码
正常情况下,关机对话框是有explorer.exe调用,直接使用rundll32调用时无法触发相关命令。
既然使用explorer.exe调用可以,我们可以尝试使用脚本来实现。实现原理:
激活explorer.exe
按ALT+F4
编写VBS脚本如下(将下述内容另存为shutdown.vbs):
Dim objWMI,wsh
Dim colProcesses,objProcess
pid=0
set objWMI=GetObject("winmgmts:{impersonationLevel=impersonate}\\.\root\cimv2")
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}"
上述脚本运行环境为:XP SP2
其他环境也可能正常工作,不过对于有多个explorer.exe进程的系统,就可能不正常工作了,如开了远程终端服务的多用户环境下。