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

[问题求助] [已解决]VBS怎样模拟键盘输入程序?

因为工作的原因,每天早6点就得到单位调数,很累想求助一个批处理程序,实现如下功能:
首先,在前一天下班前运行程序,程序开始自动检测当前的系统时间是否为早晨6:00?不是继续检测。是,运行指定程序(比如:以DOS为例)。
第二功能,打开调数程序(比如:以DOS为例)。
第三功能,DOS窗口打开了,要根据提示录入英文字母、数字、空格、Del键、回车键等。比如:录入qwe122后面要有个回车才能进行下一个提示的录入;还有如,hh空格123.sh同样后面要有个回车才能进行下一个提示;录入了几次上述的条件后,系统会弹出个大菜单,只有按一次Del键才能继续录入像上面例子中的条件。
----依次录入字符串(注:英文小写)qwe2100回车;qqq111回车;按Delete键;sh bbw.sh回车;qqq11100回车;20100101回车;20100228回车;
第四功能,再在桌面上新建一个以当前系统日期为名的文件夹。
我在网上苦找很久,有一个叫vbs的文章模拟键盘输入,介绍的内容好像可以帮我实现第三功能,但我不懂,请高手帮忙看看好吧
--------------------------------------------------------------------------------------------------------
以下是我在网上找的初步能满足上述功能小段落,但是请高手相助:
  1. [b]功能二代码:[/b]
  2. @echo off
  3. echo...正在运行软件……请稍后.
  4. start  C:\PROGRA~1\Dos\Dos.exe 212.1.30.45
  5. [exit]
复制代码
  1. [b]功能四代码:[/b]@echo off
  2. start mshta vbscript:execute("createobject(""scripting.filesystemobject"").CreateFolder date()")(window.close)
  3. exit
复制代码
功能三代码:【原文网址:http://hi.baidu.com/yangbu/blog/ ... 70b4369b5027f0.html
  1. Set objShell = CreateObject("Wscript.Shell")
  2. strCommandLine = "ttpsetup.exe"        '启动安装程序
  3. objShell.Run(strCommandLine)
  4. set WshShell = CreateObject("WScript.Shell")
  5. WScript.Sleep 3000        '延时3秒
  6. WshShell.SendKeys "s"        '模拟按下 S 键开始安装
  7. WScript.Sleep 300        '延时0.3秒
  8. WshShell.SendKeys "a"        '模拟按下 A 键同意协议
  9. WScript.Sleep 300
  10. WshShell.SendKeys "{ENTER}"        '模拟按下回车键执行下一步
  11. WScript.Sleep 300
  12. WshShell.SendKeys "{ENTER}"        '模拟按下回车键执行下一步
  13. WScript.Sleep 300
  14. WshShell.SendKeys "{ENTER}"        '模拟按下回车键执行下一步
  15. WScript.Sleep 2000
  16. WshShell.SendKeys "{TAB}"        '模拟按下 Tab 键选择安装项目
  17. WScript.Sleep 300
  18. WshShell.SendKeys "{TAB}"
  19. WScript.Sleep 300
  20. WshShell.SendKeys " "        '模拟按下空格键去除安装百度超级搜霸一行前的√号
  21. WScript.Sleep 300
  22. [WshShell.SendKeys "{ENTER}"        '模拟按下回车键完成最后一步
复制代码
1

评分人数

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

本帖最后由 dawei124578 于 2012-2-6 18:03 编辑

版主好,在您的帮助下,我用的程序很顺手,您给我的批处理程序真是很实用。我现在有个难点,请您帮忙看看我怎样做。http://bbs.bathome.net/thread-13845-1-3.html,第15楼,批处理是定时调用程序,模拟键盘录入条件;但是为了保密,在我不在电脑前时,电脑是处于被锁定的状态的有登录密码。我发现定时调的批处理程序在处于电脑被锁定的状态下不能正常使用。具体现象是调用的窗口能打开,但是录入条件时就不能执行了。

TOP

又是版主的作品,留个记号!!!

TOP

回复 16# dawei124578


    嗯,没事,不用客气
---学无止境---

TOP

鹅地神呀,奇迹出现了,Orz,跪谢版主

TOP

呵呵,sorry,有个地方弄错了,现在你试试下面的代码
  1. @rem 保存我为 AutoWork.bat
  2. @echo off
  3. more +6 "%~f0">Work.vbs
  4. at 6:00 /interactive "%~dp0Work.vbs"
  5. exit
  6. Dim wsh,strPath,fso
  7. Set fso = CreateObject("Scripting.FileSystemObject")
  8. Rem 下面是程序的路径
  9. strPath = "C:\112.txt"
  10. set wsh = CreateObject("WScript.Shell")
  11. fso.CreateFolder wsh.SpecialFolders("Desktop") & "\" _
  12.         & DatePart("yyyy",Date) & "-" _
  13.         & DatePart("m",Date) & "-" _
  14.         & DatePart("d",Date)
  15. wsh.Run strPath
  16. WScript.Sleep 3000 '延时3秒
  17. wsh.SendKeys "qwe2100"
  18. WScript.Sleep 500
  19. wsh.SendKeys "{enter}"
  20. WScript.Sleep 500
  21. wsh.SendKeys "qqq111"
  22. WScript.Sleep 500
  23. wsh.SendKeys "{enter}"
  24. WScript.Sleep 500
  25. wsh.SendKeys "{DELETE}"
  26. WScript.Sleep 500
  27. wsh.SendKeys "sh bbw.sh"
  28. WScript.Sleep 500
  29. wsh.SendKeys "{enter}"
  30. WScript.Sleep 500
  31. wsh.SendKeys "qqq11100"
  32. WScript.Sleep 500
  33. wsh.SendKeys "{enter}"
  34. WScript.Sleep 500
  35. wsh.SendKeys "20100101"
  36. WScript.Sleep 500
  37. wsh.SendKeys "{enter}"
  38. WScript.Sleep 500
  39. wsh.SendKeys "20100228"
  40. WScript.Sleep 500
  41. wsh.SendKeys "{enter}"
  42. Rem 重复用上面的步骤直到输入完你要输入的值
复制代码
2

评分人数

---学无止境---

TOP

回复 12# dawei124578


    第一步:重启电脑,运行命令提示符:at,如下图1
[attach]4356[/attach]

    第二步:在管理工具--服务---把task scheduler状态改为启动,如下图2
[attach]4357[/attach]

   第三步:在29日,5:57:36运行了批处理,如下图3
[attach]4358[/attach]

   第四步:再次运行命令提示符:at,如下图4
[attach]4359[/attach]

   第五步:等待6:00后批处理能自动打开程序,并录入设置好的命令字符,但是奇迹没有出现。如下图5
  1. @rem 保存我为 AutoWork.bat
  2. @echo off
  3. if not exist Work.vbs more +6 "%~f0">Work.vbs
  4. at 6:00 /interactive "Work.vbs"
  5. exit
  6. Dim wsh,strPath,fso
  7. Set fso = CreateObject("Scripting.FileSystemObject")
  8. Rem 下面是程序的路径
  9. strPath = "C:\112.txt"
  10. set wsh = CreateObject("WScript.Shell")
  11. fso.CreateFolder wsh.SpecialFolders("Desktop") & "\" _
  12.         & DatePart("yyyy",Date) & "-" _
  13.         & DatePart("m",Date) & "-" _
  14.         & DatePart("d",Date)
  15. wsh.Run strPath
  16. WScript.Sleep 3000 '延时3秒
  17. wsh.SendKeys "qwe2100"
  18. WScript.Sleep 500
  19. wsh.SendKeys "{enter}"
  20. WScript.Sleep 500
  21. wsh.SendKeys "qqq111"
  22. WScript.Sleep 500
  23. wsh.SendKeys "{enter}"
  24. WScript.Sleep 500
  25. wsh.SendKeys "{DELETE}"
  26. WScript.Sleep 500
  27. wsh.SendKeys "sh bbw.sh"
  28. WScript.Sleep 500
  29. wsh.SendKeys "{enter}"
  30. WScript.Sleep 500
  31. wsh.SendKeys "qqq11100"
  32. WScript.Sleep 500
  33. wsh.SendKeys "{enter}"
  34. WScript.Sleep 500
  35. wsh.SendKeys "20100101"
  36. WScript.Sleep 500
  37. wsh.SendKeys "{enter}"
  38. WScript.Sleep 500
  39. wsh.SendKeys "20100228"
  40. WScript.Sleep 500
  41. wsh.SendKeys "{enter}"
  42. Rem 重复用上面的步骤直到输入完你要输入的值
复制代码
[attach]4360[/attach]

TOP

回复 12# dawei124578


    你重复9楼的步骤看看成功了没
---学无止境---

TOP

回复 11# broly


    是这样吗?

TOP

回复 10# dawei124578


    呵呵,我说呢,原来你的  at 服务都还没开通。解决方法:控制面板->管理工具->服务->开启Task Scheduler服务
黑框闪一下就没了是正常的,因为运行完了就退出了。
---学无止境---

TOP

回复 9# broly


    一运行,窗口一闪就没了

TOP

回复 8# dawei124578


    你现在运行一次批处理,然后在命令提示符下输入 at ,然后回车,看看里面的内容是什么
---学无止境---

TOP

回复 7# broly


    是早上6点,

TOP

你什么时候按的?你指的6:00是早上的吗?
---学无止境---

TOP

???我的电脑为什么双击完批处理后,等右下角时间到6:00后,并没有自动运行

TOP

返回列表