标题: [其他] 批处理自动输入用户名和密码 [打印本页]
作者: wulifaker 时间: 2024-7-25 16:08 标题: 批处理自动输入用户名和密码
请问一下,想用批处理实行打开软件,实现自动输入用户名和密码,该怎么做?
已经实现了一半了,卡在最后面的输入用户名和密码。网上找了用vbs也没能输入成功。
有人能指点迷津一下吗?非常谢谢!- @echo off
- set username=ENGINEER
- set password=123456
-
- start "" "C:\Users\Public\Desktop\SAP Logon.lnk"
- timeout /T 5
- echo set oShell = CreateObject("WScript.Shell")>temp.vbs
- echo oShell.SendKeys "%{DOWN}">>temp.vbs
- echo oShell.SendKeys "%{ENTER}">>temp.vbs
- echo oShell.SendKeys %username%>>temp.vbs
- echo oShell.SendKeys "%{DOWN}">>temp.vbs
- echo oShell.SendKeys %password%>>temp.vbs
- echo oShell.SendKeys "%{ENTER}">>temp.vbs
- start /d "%~dp0" temp.vbs
- pause
复制代码
作者: czjt1234 时间: 2024-7-25 17:26
vbs发送按键,是发送到当前活动窗口,而不是当前最上面一个窗口
你双击运行批处理时,软件窗口就已经不是活动窗口了
作者: ppll2030 时间: 2024-7-25 17:45
在7、8行之间,添加一个激活登录窗口的命令试试
oShell.appactivate("记事本") //记事本可更换为你登录窗口左上角的关键字。
或者,直接用vbs运行登录窗口,给足启动的时间,再输入账号密码
oShell.run("C:\Users\Public\Desktop\SAP Logon.lnk")
oShell.sleep 5000
作者: wulifaker 时间: 2024-7-26 10:38
你好,我试着按你说的做了,但是点开之后就弹出一个cmd框,之后无任何反映了,甚至没有启动程序。
详情请见代码,谢谢。- @echo off
- set username="ENGINEER"
- set password="123456"
-
- :::start "" "C:\Users\Public\Desktop\SAP Logon.lnk"
- :::timeout /T 5
- echo set oShell = CreateObject("WScript.Shell")>temp.vbs
- :::echo oShell.run("C:\Users\Public\Desktop\SAP Logon.lnk")>>temp.vbs
- echo oShell.appactivate("SAP Logon 730")>>temp.vbs
- echo WScript.Sleep(5000)>>temp.vbs
- echo oShell.SendKeys "%{DOWN}">>temp.vbs
- echo oShell.SendKeys "%{ENTER}">>temp.vbs
- echo oShell.SendKeys %username%>>temp.vbs
- echo oShell.SendKeys "%{DOWN}">>temp.vbs
- echo oShell.SendKeys %password%>>temp.vbs
- echo oShell.SendKeys "%{ENTER}">>temp.vbs
- start /d "%~dp0" temp.vbs
- pause
复制代码
回复 3# ppll2030
作者: wulifaker 时间: 2024-7-26 10:41
你好,谢谢回复,你跟三楼所提到是一样的。
但是我用vbs启动了程序,无反应
回复 2# czjt1234 - @echo off
- set username="ENGINEER"
- set password="123456"
-
- :::start "" "C:\Users\Public\Desktop\SAP Logon.lnk"
- :::timeout /T 5
- echo set oShell = CreateObject("WScript.Shell")>temp.vbs
- :::echo oShell.run("C:\Users\Public\Desktop\SAP Logon.lnk")>>temp.vbs
- echo oShell.appactivate("SAP Logon 730")>>temp.vbs
- echo WScript.Sleep(5000)>>temp.vbs
- echo oShell.SendKeys "%{DOWN}">>temp.vbs
- echo oShell.SendKeys "%{ENTER}">>temp.vbs
- echo oShell.SendKeys %username%>>temp.vbs
- echo oShell.SendKeys "%{DOWN}">>temp.vbs
- echo oShell.SendKeys %password%>>temp.vbs
- echo oShell.SendKeys "%{ENTER}">>temp.vbs
- start /d "%~dp0" temp.vbs
- pause
复制代码
作者: ppll2030 时间: 2024-7-26 12:47
回复 5# wulifaker
第8行,文件路径有空格,多加2对双引号试试- echo oShell.run("""C:\Users\Public\Desktop\SAP Logon.lnk""")>>temp.vbs
复制代码
作者: wulifaker 时间: 2024-7-26 13:58
本帖最后由 wulifaker 于 2024-7-26 14:23 编辑
回复 6# ppll2030
你好,路径加了两个双引号可行,然后跳转至程序内部,但是还是一样卡在输入使用者账号那部分了。
SAP Logon选择SAP进去后会弹出另外一个窗口输入账户和密码,接下来的输入账号和密码部分就继续不下去了。
作者: wulifaker 时间: 2024-7-26 14:22
回复 6# ppll2030
你好,我好像找到问题所在了,新创建的窗口在另外一层,导致写的vbs只能在最开始那个窗口操作。
请问有什么好方法对新弹出的窗口进行操作呢?谢谢
作者: wulifaker 时间: 2024-7-26 14:23
回复 2# czjt1234
你好,我验证了一下,确实是这个问题,请问有什么解决方法吗?或者解决思路?非常感谢!
作者: wulifaker 时间: 2024-7-26 14:38
回复 6# ppll2030
你好,我找到了窗口的ip地址,是不是运行这个ip地址,就可以在这窗口下进行操作了?
作者: wulifaker 时间: 2024-7-26 16:30
回复 6# ppll2030
你好,我问题解决了,误打误撞,也没有所谓需要操作窗口在最上层 。
但是以下代码还是成功模拟自动输入密码了。
也有跟输入法有关系。- set oShell = CreateObject("WScript.Shell")
- oShell.run("""C:\Users\Public\Desktop\SAP Logon.lnk""")
- WScript.Sleep(2000)
- oShell.SendKeys "{DOWN}"
- oShell.SendKeys "{ENTER}"
- WScript.Sleep(2000)
- oShell.SendKeys "ENGINEER"
- oShell.SendKeys "{TAB}"
- oShell.SendKeys "123456"
- oShell.SendKeys "{ENTER}"
- WScript.Sleep(1000)
- oShell.SendKeys "{Esc}"
- oShell.SendKeys "{TAB}"
- oShell.SendKeys "1234567"
- oShell.SendKeys "{ENTER}"
复制代码
作者: wulifaker 时间: 2024-7-26 16:32
回复 2# czjt1234
你好,我问题解决了,误打误撞,也没有所谓需要操作窗口在最上层 。
但是以下代码还是成功模拟自动输入密码了。
也有跟输入法有关系。- set oShell = CreateObject("WScript.Shell")
- oShell.run("""C:\Users\Public\Desktop\SAP Logon.lnk""")
- WScript.Sleep(2000)
- oShell.SendKeys "{DOWN}"
- oShell.SendKeys "{ENTER}"
- WScript.Sleep(2000)
- oShell.SendKeys "ENGINEER"
- oShell.SendKeys "{TAB}"
- oShell.SendKeys "123456"
- oShell.SendKeys "{ENTER}"
- WScript.Sleep(1000)
- oShell.SendKeys "{Esc}"
- oShell.SendKeys "{TAB}"
- oShell.SendKeys "1234567"
- oShell.SendKeys "{ENTER}"
复制代码
作者: newswan 时间: 2024-7-26 23:05
可以试试 autohotkey
作者: wulifaker 时间: 2024-7-27 08:20
回复 13# newswan
好的,我试试,谢谢
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |