在我的计算机被锁定时正确获取 运行 的 VBScript
Get a VBScript to run properly while my computer is locked
我在代码中加入了一个 pause
来分解它并确保它在做它应该做的事情。不是。
Check1.msl
会吐出一个名为check.rpt
的文件。当我手动 运行 它并且批处理文件暂停时 - check.rpt
在那里。我安排任务并锁定我的电脑。当我重新登录时,msl 程序已打开并且 cmd 提示符处于暂停状态但没有 check.rpt
文件。
开头是这样的:
@ECHO OFF
PUSHD "%~dp0"
ECHO CD is now %CD%
PING 1.1.1.1 -w 2000 -n 1
echo starting the check1 msl file
DIR Check1.msl
Start Check1.msl
PING 1.1.1.1 -w 2000 -n 1
echo starting the password injector file
WScript //B passwordinjector.vbs
pause
POPD
exit
这是名为 passwordinjector.vbs
的 VBScript
set wshshell = wscript.CreateObject("wscript.shell")
wshshell.AppActivate "User Login"
WshShell.SendKeys "Username"
WshShell.SendKeys "{tab}Password"
WshShell.SendKeys "{tab}{enter}"
我试过 cscript passwordinjector.vbs
没用。
编辑:
研究(和常识)我发现当计算机被锁定时你不能 .SendKeys
。我需要一种替代方法来将登录信息传递给程序。如何将用户名和密码传递给程序提示?
如何将登录信息传递给程序取决于特定程序期望登录信息的方式。除非您能够在命令行或类似的东西(例如 HTTP POST 请求)中提供凭据,否则恐怕无法使用 VBScript 完成。
您可能需要考虑切换到更适合 GUI 自动化的东西,例如 AutoIt。
我在代码中加入了一个 pause
来分解它并确保它在做它应该做的事情。不是。
Check1.msl
会吐出一个名为check.rpt
的文件。当我手动 运行 它并且批处理文件暂停时 - check.rpt
在那里。我安排任务并锁定我的电脑。当我重新登录时,msl 程序已打开并且 cmd 提示符处于暂停状态但没有 check.rpt
文件。
开头是这样的:
@ECHO OFF
PUSHD "%~dp0"
ECHO CD is now %CD%
PING 1.1.1.1 -w 2000 -n 1
echo starting the check1 msl file
DIR Check1.msl
Start Check1.msl
PING 1.1.1.1 -w 2000 -n 1
echo starting the password injector file
WScript //B passwordinjector.vbs
pause
POPD
exit
这是名为 passwordinjector.vbs
set wshshell = wscript.CreateObject("wscript.shell")
wshshell.AppActivate "User Login"
WshShell.SendKeys "Username"
WshShell.SendKeys "{tab}Password"
WshShell.SendKeys "{tab}{enter}"
我试过 cscript passwordinjector.vbs
没用。
编辑:
研究(和常识)我发现当计算机被锁定时你不能 .SendKeys
。我需要一种替代方法来将登录信息传递给程序。如何将用户名和密码传递给程序提示?
如何将登录信息传递给程序取决于特定程序期望登录信息的方式。除非您能够在命令行或类似的东西(例如 HTTP POST 请求)中提供凭据,否则恐怕无法使用 VBScript 完成。
您可能需要考虑切换到更适合 GUI 自动化的东西,例如 AutoIt。