中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助:VBS调用键盘{Ctrl}{Alt}{Del}
作者:
标题: 求助:VBS调用键盘{Ctrl}{Alt}{Del} 上一主题 | 下一主题
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
查看资料  发送邮件  发短消息 网志  OICQ (182484135)  编辑帖子  回复  引用回复
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
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: