找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26818|回复: 9

[问题求助] vbs如何实现软件登录界面的模拟键盘输入?

[复制链接]
发表于 2016-3-30 13:47:24 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-3-31 19:51 编辑

是这样的,因为工作关系需要开机后自动登陆一个软件,度娘后捣鼓出以下代码:
  1. dim program
  2. program="...\xxx.exe"
  3. set Wshell=CreateObject("Wscript.Shell")
  4. set exec=Wshell.Exec(program)
  5. wscript.Sleep 2000
  6. Wshell.SendKeys "{TAB}"
  7. wscript.Sleep 200
  8. Wshell.SendKeys "xxx"
  9. wscript.Sleep 200
  10. Wshell.SendKeys "{ENTER}"
复制代码
这个在我家里的电脑过了,但是工作电脑据说系统是给修改过的阉割版本,xxx.exe会运行,但不能进入下一步,并报错:第三行,提示编译错误。似乎是Sleep方法的问题。(我在想,如果真的是sleep方法给阉割了,那是不是可以替换或者找到sleep方法的函数通过dll注入呢?)

麻烦大神给说说,为什么有的电脑不能支持这个方法?应该怎么处理?

如果可能,怎样提高这个vbs的兼容性和可靠性:例如如果开机后脚本执行过程中,弹出了其他应用窗口可能需要隐藏并重新激活xxx.exe为当前程序;例如可能因为电脑莫名卡机sleep时间不足或者其他什么原因导致程序未能成功运行,因此可能需要检测脚本的执行结果——这些度娘没有找到了……
发表于 2016-3-30 14:15:14 | 显示全部楼层
回复 1# lostyi
模拟按键不靠谱,用软件登录王
发表于 2016-3-30 14:55:16 | 显示全部楼层
ahk **好
发表于 2016-3-30 15:07:36 | 显示全部楼层
本帖最后由 czjt1234 于 2016-3-30 15:11 编辑

完整的错误代码发出来,怀疑不是sleep被阉割

exec方法返回WshScriptExec对象,支持.StdIn.Write方法直接写入
 楼主| 发表于 2016-3-30 15:20:48 | 显示全部楼层
本帖最后由 lostyi 于 2016-3-30 15:22 编辑

回复 4# czjt1234
thx
这个差不多就是完整代码了。因为软件启动后焦点在账号输入框,账号是保存好了的,所以只需要TAB一次进入密码框然后enter就可以了。

用.StdIn.Write方法写入什么内容?我没有明白……
发表于 2016-3-30 18:42:02 | 显示全部楼层
ahk这种也是看一种文档自己也会用了的.
发表于 2016-3-31 06:21:56 | 显示全部楼层
回复 1# lostyi
  1. dim program
  2. program="...\xxx.exe"

  3. set wshell=createobject("wscript.shell")
  4. wshell.run """program""",1
  5. wscript.sleep 3000 '3秒
  6. wshell.appactivate "登录窗口标题"

  7. wscript.Sleep 2000
  8. Wshell.SendKeys "{TAB}"
  9. wscript.Sleep 200
  10. Wshell.SendKeys "xxx"
  11. wscript.Sleep 200
  12. Wshell.SendKeys "{ENTER}"
复制代码
 楼主| 发表于 2016-3-31 08:21:39 | 显示全部楼层
回复 7# ygqiang


    非常感谢,我试试先。
发表于 2016-9-10 00:32:43 | 显示全部楼层
这个不注册表run下么?怎么实现开机就自动登录的?不是还是要手点的么
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 10:40 , Processed in 0.015507 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表