[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[已解决]批处理如何定时启动关闭软件

本帖最后由 AKB400 于 2013-6-25 11:45 编辑

情景:QQ_农、牧、餐的辅助软件。名字:a.exe。存放地点d:\a\a.exe。该辅助软件有弹IE窗口的广告,2到3个。
要求:1、开机5分钟后启动
      2、启动软件后模拟按“回车”
      3、按“回车”后的3分钟内,杀掉IE浏览器进程。隔30秒扫描一次。
参考:前人的帖子
      (1)http://bbs.bathome.net/viewthrea ... hlight=%B6%A8%CA%B1

         (2)http://bbs.bathome.net/viewthrea ... A3%C4%E2&page=1
          (2)帖15楼大大的代码

参考后自己修改的代码:
  1. @echo off
  2. more +6 "%~f0">Work.vbs
  3. at 8:00 /interactive "%~dp0Work.vbs"
  4. exit
  5. Dim wsh,strPath,fso
  6. Set fso = CreateObject("Scripting.FileSystemObject")
  7. Rem 下面是程序的路径
  8. strPath = "D:\a\a.exe"
  9. set wsh = CreateObject("WScript.Shell")
  10. wsh.Run strPath
  11. WScript.Sleep 20000 '延时20秒
  12. wsh.SendKeys "{enter}"
  13. Rem 重复用上面的步骤直到输入完你要输入的值
  14. wsh.run "taskkill /f /im iexplore.exe",,True
复制代码
问题求答:1、参考的帖子是定时启动的“8:00”
          2、3分钟内杀IE浏览器进程的部分,只是杀掉第一个进程,没有加入延时扫描,求大神回复!
   

2013-06-25更新——
最终的结果:
  1. @echo off
  2. more +6 "%~f0">"%~dp0Work.vbs"
  3. schtasks /delete /tn test /f 2>nul
  4. schtasks /create /tn test /tr \""%~dp0Work.vbs\"" /sc onlogon /ru 登录用户名 /rp 密码
  5. pause&goto :eof
  6. Dim ws,strPath,i
  7. strPath = "d:\a\a.exe"
  8. set ws = CreateObject("WScript.Shell")
  9. WScript.Sleep 60000 * 5 '延时5分钟,启动a.exe
  10. ws.Run strPath
  11. WScript.Sleep 20000 '延时20秒,按回车
  12. ws.SendKeys "{enter}"
  13. For i = 1 to 36 '循环36次(3分钟)
  14.     ws.run "taskkill /f /im iexplore.exe",vbHide,True
  15.     WScript.Sleep 5000 '延时5秒
  16. Next
复制代码
感谢“apang”的热情相助!
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 apang 于 2013-6-24 15:59 编辑

修改用户名、密码为实际
  1. @echo off
  2. more +5 "%~f0">Work.vbs
  3. schtasks /create /tn "test" /tr \""%~dp0Work.vbs\"" /sc onstart /ru 登录用户名 /rp 密码
  4. goto :eof
  5. Dim ws,strPath,i
  6. Rem 下面是程序的路径
  7. strPath = "d:\a\a.exe"
  8. set ws = CreateObject("WScript.Shell")
  9. WScript.Sleep 60000 * 5 '延时5分钟,启动 d:\a\a.exe
  10. ws.Run strPath
  11. WScript.Sleep 20000 '延时20秒,按回车
  12. ws.SendKeys "{enter}"
  13. Rem 重复用上面的步骤直到输入完你要输入的值
  14. For i = 1 to 6 '循环6次(3分钟)
  15.     ws.run "taskkill /f /im iexplore.exe",,True
  16.     WScript.Sleep 30000 '延时30秒
  17. Next
复制代码

TOP

回复 2# apang

不知道能不能实现我所提出的第一个要求:开机后5分钟才运行批处理?

TOP

回复 2# apang

而且,好像只能运行一次。下一次重启就失效了。

TOP

回复 4# AKB400


    2楼已修改

TOP

回复 2# apang


    【XP】无论如何重启,无法执行命令——未能启动软件。

TOP

回复 6# AKB400


    你的系统是不是空密码登录啊?如果是,需修改组策略,请自行百度搜索。
或者以 system 权限运行,不需要密码。

TOP

回复 7# apang


    不是,例:账号aaa,密码123456。用魔方设置自动登录。我照你说的把“登录用户名”“密码”修改成我的账号了。
   单独运行bat生成的work.vbs能运行程序,但IE浏览器只关闭了第一个。

TOP

我在win7测试是可以的。xp没测试,改下这一句试试嘛:
schtasks /create /tn "test" /tr \""%~dp0Work.vbs\"" /sc onstart /ru system

TOP

本帖最后由 AKB400 于 2013-6-24 19:15 编辑

回复 9# apang


    还有,我修改了杀进程的时间:
  1. For i = 1 to 30 '循环30次
  2.     ws.run "taskkill /f /im iexplore.exe",,True
  3.     WScript.Sleep 10000 '延时10
复制代码
能杀掉,但最后还有一个杀不掉,不论循环多少次。

有更有效的方法吗?

TOP

你这是延时1秒,循环30次,也就是30秒,30秒后的进程就杀不掉的,尝试修改代码这是好事,但是别改的前言不搭后语的。另外schtasks /create /delay参数本身可延时。
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

回复 11# xxpinqz

个人疏忽了,想是10秒的,打少了个0
已更正。

TOP

本帖最后由 AKB400 于 2013-6-24 19:35 编辑

回复 9# apang


    修改后能启动运行,注销后失效,该怎么改?是在onstart后面直接“空格onlogon”?

TOP

回复 11# xxpinqz

      schtasks /create /delay 不错,学习了。

回复 13# AKB400

     "注销" 和 "windows启动"、"windows登录" 应该不是一回事情。况且你的标题是"开机后"。。。

TOP

回复 14# apang


    呵呵,是我太贪心了。还有问题存在:原本是要启动并显示软件窗口,才能按回车登陆QQ辅助软件的。但是我发现使用你写的代码执行命令时,任务管理器里出现a.exe却没有窗口显示,该辅助软件并非完全启动成功,怎么办?『附:软件的主页http://www.qqhelper.net』

TOP

返回列表