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

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

本帖最后由 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时间不足或者其他什么原因导致程序未能成功运行,因此可能需要检测脚本的执行结果——这些度娘没有找到了……

回复 1# lostyi
模拟按键不靠谱,用软件登录王

TOP

ahk **好

TOP

本帖最后由 czjt1234 于 2016-3-30 15:11 编辑

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

exec方法返回WshScriptExec对象,支持.StdIn.Write方法直接写入

QQ 20147578

TOP

本帖最后由 lostyi 于 2016-3-30 15:22 编辑

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

用.StdIn.Write方法写入什么内容?我没有明白……

TOP

ahk这种也是看一种文档自己也会用了的.
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 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}"
复制代码

TOP

回复 7# ygqiang


    非常感谢,我试试先。

TOP

这个不注册表run下么?怎么实现开机就自动登录的?不是还是要手点的么

TOP

返回列表