以前有介绍如何使用命令行调用系统的关机对话框:
http://blog.csdn.net/scz123/archive/2005/09/30/492991.aspx
具体方法:开始/运行: rundll32.exe shell32.dll #60
但是,上述方法会存在一问题,XP下无法正常使用该方法进行关机(感谢网友 沐烨 发现该问题) 。问题原因可能是:正常情况下,关机对话框是有explorer.exe调用,直接使用rundll32调用时无法触发相关命令。
既然使用explorer.exe调用可以,我们可以尝试使用脚本来实现。实现原理:
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
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
set
wsh
=
WScript.CreateObject(
"
WScript.Shell
"
)
wsh.AppActivate pid
wsh.sendKeys
"
%{F4}
"
上述脚本运行环境为:XP SP2
其他环境也可能正常工作,不过对于有多个explorer.exe进程的系统,就可能不正常工作了,如开了远程终端服务的多用户环境下。
具体方法:开始/运行: rundll32.exe shell32.dll #60
但是,上述方法会存在一问题,XP下无法正常使用该方法进行关机(感谢网友 沐烨 发现该问题) 。问题原因可能是:正常情况下,关机对话框是有explorer.exe调用,直接使用rundll32调用时无法触发相关命令。
既然使用explorer.exe调用可以,我们可以尝试使用脚本来实现。实现原理:
- 激活explorer.exe
- 按ALT+F4
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
上述脚本运行环境为:XP SP2
其他环境也可能正常工作,不过对于有多个explorer.exe进程的系统,就可能不正常工作了,如开了远程终端服务的多用户环境下。