|
vlq5299
初级用户
积分 136
发帖 59
注册 2006-6-2
状态 离线
|
『楼 主』:
求助:VBS调用键盘{Ctrl}{Alt}{Del}
我想用VBS做一个快速重启的脚本,利用任务管理器中{Ctrl}+U实现,脚本如下:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys ("^%{DEL}") '同时按下{Ctrl}{Alt}{Del}
WScript.Sleep 500 '等待启动任务管理器
WshShell.SendKeys ("%u") '同时按下{Alt}+U
WshShell.SendKeys ("^r") '同时按下{Ctrl}+R 数次尝试均不成功,请帮忙修改下
|
|
2009-8-11 23:05 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
2 楼』:
为什么不直接run taskmgr……
|
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore |
|
2009-8-11 23:13 |
|
|
vlq5299
初级用户
积分 136
发帖 59
注册 2006-6-2
状态 离线
|
『第
3 楼』:
run可以运行,但是{Alt}+U仍然调用不了
|
|
2009-8-11 23:24 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
4 楼』:
我这里测试可以。。。
|
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore |
|
2009-8-12 00:12 |
|
|
yishanju
银牌会员
[b]看你妹啊[/b]
积分 1488
发帖 1357
注册 2006-5-20
状态 离线
|
『第
5 楼』:
{Alt}+U是什么操作?{Alt}+U
|
有问题请发论坛或者自行搜索,再短消息问我的统统是SB |
|
2009-8-12 00:14 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
6 楼』:
访问 菜单
|
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore |
|
2009-8-12 01:02 |
|
|
qinchun36
高级用户
据说是李先生
积分 609
发帖 400
注册 2008-4-23
状态 离线
|
『第
7 楼』:
可能是你机器性能的问题,你可以试试把等待时间延长,比如加个 0 改成 5000, 再在 Alt+U 之后再等 500 ms.
要实现重启或者关机可以试试这个:
Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}!\\.\root\cimv2")
Set colOS = WMI.ExecQuery("Select * from Win32_OperatingSystem")
For Each OS in colOS
OS.Reboot() ' 关机为 OS.Win32Shutdown(1)
Next
|
|
2009-8-12 23:25 |
|
|
vlq5299
初级用户
积分 136
发帖 59
注册 2006-6-2
状态 离线
|
『第
8 楼』:
WshShell.SendKeys ("^%{DEL}") '同时按下{Ctrl}{Alt}{Del}
原来windows不允许vbs同时调用这三个键
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys ("^+{ESC}") '同时按下{Ctrl}{Shift}{ESC}
WScript.Sleep 500 '等待启动任务管理器
WshShell.SendKeys ("%u") '同时按下{Alt}+U
WScript.Sleep 200 '延时
WshShell.SendKeys ("^r") '同时按下{Ctrl}+R 这样可以执行,但是执行重启的时候不是预期的不保存任何进程快速重启,仍然是按照正常的重启步骤:注销-保存-关机-重启……
不知道何故,高手给下解释
[ Last edited by vlq5299 on 2009-8-14 at 07:03 ]
|
|
2009-8-14 06:57 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
9 楼』:
那个按住CTRL键不放再按R
不是CTRL+R
这个VBS模仿不了。
直接调用
shutdown.exe -r -f -t 0
可以吗?
套用上面的WMI
Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}!\\.\root\cimv2")
Set colOS = WMI.ExecQuery("Select * from Win32_OperatingSystem")
For Each OS In colOS
OS.Win32Shutdown(6)
Next
|
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore |
|
2009-8-16 22:59 |
|
|
vlq5299
初级用户
积分 136
发帖 59
注册 2006-6-2
状态 离线
|
『第
10 楼』:
Quote: | Originally posted by slore at 2009-8-16 22:59:
那个按住CTRL键不放再按R
不是CTRL+R
这个VBS模仿不了。
|
|
Ctrl+Esc vbs就可以模仿的
|
|
2009-8-28 04:55 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
11 楼』:
汗~
你一起按看它出来不。。。
VBS发送的是一起的。。。不是按住的。。。
那个快捷键可以2个都行罢了
|
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore |
|
2009-8-28 11:32 |
|