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

[其他] 批处理自动输入用户名和密码

请问一下,想用批处理实行打开软件,实现自动输入用户名和密码,该怎么做?
已经实现了一半了,卡在最后面的输入用户名和密码。网上找了用vbs也没能输入成功。
有人能指点迷津一下吗?非常谢谢!
  1. @echo off
  2. set username=ENGINEER
  3. set password=123456
  4. start "" "C:\Users\Public\Desktop\SAP Logon.lnk"
  5. timeout /T 5
  6. echo set oShell = CreateObject("WScript.Shell")>temp.vbs
  7. echo oShell.SendKeys "%{DOWN}">>temp.vbs
  8. echo oShell.SendKeys "%{ENTER}">>temp.vbs
  9. echo oShell.SendKeys %username%>>temp.vbs
  10. echo oShell.SendKeys "%{DOWN}">>temp.vbs
  11. echo oShell.SendKeys %password%>>temp.vbs
  12. echo oShell.SendKeys "%{ENTER}">>temp.vbs
  13. start /d "%~dp0" temp.vbs
  14. pause
复制代码

vbs发送按键,是发送到当前活动窗口,而不是当前最上面一个窗口
你双击运行批处理时,软件窗口就已经不是活动窗口了

QQ 20147578

TOP

在7、8行之间,添加一个激活登录窗口的命令试试
oShell.appactivate("记事本")   //记事本可更换为你登录窗口左上角的关键字。

或者,直接用vbs运行登录窗口,给足启动的时间,再输入账号密码
oShell.run("C:\Users\Public\Desktop\SAP Logon.lnk")
oShell.sleep 5000

TOP

你好,我试着按你说的做了,但是点开之后就弹出一个cmd框,之后无任何反映了,甚至没有启动程序。
详情请见代码,谢谢。
  1. @echo off
  2. set username="ENGINEER"
  3. set password="123456"
  4. :::start "" "C:\Users\Public\Desktop\SAP Logon.lnk"
  5. :::timeout /T 5
  6. echo set oShell = CreateObject("WScript.Shell")>temp.vbs
  7. :::echo oShell.run("C:\Users\Public\Desktop\SAP Logon.lnk")>>temp.vbs
  8. echo oShell.appactivate("SAP Logon 730")>>temp.vbs
  9. echo WScript.Sleep(5000)>>temp.vbs
  10. echo oShell.SendKeys "%{DOWN}">>temp.vbs
  11. echo oShell.SendKeys "%{ENTER}">>temp.vbs
  12. echo oShell.SendKeys %username%>>temp.vbs
  13. echo oShell.SendKeys "%{DOWN}">>temp.vbs
  14. echo oShell.SendKeys %password%>>temp.vbs
  15. echo oShell.SendKeys "%{ENTER}">>temp.vbs
  16. start /d "%~dp0" temp.vbs
  17. pause
复制代码
回复 3# ppll2030

TOP

你好,谢谢回复,你跟三楼所提到是一样的。
但是我用vbs启动了程序,无反应
回复 2# czjt1234
  1. @echo off
  2. set username="ENGINEER"
  3. set password="123456"
  4. :::start "" "C:\Users\Public\Desktop\SAP Logon.lnk"
  5. :::timeout /T 5
  6. echo set oShell = CreateObject("WScript.Shell")>temp.vbs
  7. :::echo oShell.run("C:\Users\Public\Desktop\SAP Logon.lnk")>>temp.vbs
  8. echo oShell.appactivate("SAP Logon 730")>>temp.vbs
  9. echo WScript.Sleep(5000)>>temp.vbs
  10. echo oShell.SendKeys "%{DOWN}">>temp.vbs
  11. echo oShell.SendKeys "%{ENTER}">>temp.vbs
  12. echo oShell.SendKeys %username%>>temp.vbs
  13. echo oShell.SendKeys "%{DOWN}">>temp.vbs
  14. echo oShell.SendKeys %password%>>temp.vbs
  15. echo oShell.SendKeys "%{ENTER}">>temp.vbs
  16. start /d "%~dp0" temp.vbs
  17. pause
复制代码

TOP

回复 5# wulifaker


    第8行,文件路径有空格,多加2对双引号试试
  1. echo oShell.run("""C:\Users\Public\Desktop\SAP Logon.lnk""")>>temp.vbs
复制代码

TOP

本帖最后由 wulifaker 于 2024-7-26 14:23 编辑

回复 6# ppll2030
你好,路径加了两个双引号可行,然后跳转至程序内部,但是还是一样卡在输入使用者账号那部分了。
SAP Logon选择SAP进去后会弹出另外一个窗口输入账户和密码,接下来的输入账号和密码部分就继续不下去了。

TOP

回复 6# ppll2030
你好,我好像找到问题所在了,新创建的窗口在另外一层,导致写的vbs只能在最开始那个窗口操作。
请问有什么好方法对新弹出的窗口进行操作呢?谢谢

TOP

回复 2# czjt1234

你好,我验证了一下,确实是这个问题,请问有什么解决方法吗?或者解决思路?非常感谢!

TOP

回复 6# ppll2030
你好,我找到了窗口的ip地址,是不是运行这个ip地址,就可以在这窗口下进行操作了?

TOP

回复 6# ppll2030
你好,我问题解决了,误打误撞,也没有所谓需要操作窗口在最上层
但是以下代码还是成功模拟自动输入密码了。
也有跟输入法有关系。
  1. set oShell = CreateObject("WScript.Shell")
  2. oShell.run("""C:\Users\Public\Desktop\SAP Logon.lnk""")
  3. WScript.Sleep(2000)
  4. oShell.SendKeys "{DOWN}"
  5. oShell.SendKeys "{ENTER}"
  6. WScript.Sleep(2000)
  7. oShell.SendKeys "ENGINEER"
  8. oShell.SendKeys "{TAB}"
  9. oShell.SendKeys "123456"
  10. oShell.SendKeys "{ENTER}"
  11. WScript.Sleep(1000)
  12. oShell.SendKeys "{Esc}"
  13. oShell.SendKeys "{TAB}"
  14. oShell.SendKeys "1234567"
  15. oShell.SendKeys "{ENTER}"
复制代码

TOP

回复 2# czjt1234
你好,我问题解决了,误打误撞,也没有所谓需要操作窗口在最上层 。
但是以下代码还是成功模拟自动输入密码了。
也有跟输入法有关系。
  1. set oShell = CreateObject("WScript.Shell")
  2. oShell.run("""C:\Users\Public\Desktop\SAP Logon.lnk""")
  3. WScript.Sleep(2000)
  4. oShell.SendKeys "{DOWN}"
  5. oShell.SendKeys "{ENTER}"
  6. WScript.Sleep(2000)
  7. oShell.SendKeys "ENGINEER"
  8. oShell.SendKeys "{TAB}"
  9. oShell.SendKeys "123456"
  10. oShell.SendKeys "{ENTER}"
  11. WScript.Sleep(1000)
  12. oShell.SendKeys "{Esc}"
  13. oShell.SendKeys "{TAB}"
  14. oShell.SendKeys "1234567"
  15. oShell.SendKeys "{ENTER}"
复制代码

TOP

可以试试 autohotkey

TOP

回复 13# newswan
好的,我试试,谢谢

TOP

返回列表