尝试使批处理文件一致运行,但遇到问题。
如果我通过双击批处理文件来运行它,它就能完美地工作。
如果我把它放在启动时,它会工作1/5次。
如果我使用任务调度程序,并使其启动延迟1分钟,它就能工作2/5次,但它就是不可靠。
这个问题是:我需要打开一个特定的程序,然后输入用户名和密码到程序在登录时提供的弹出窗口。
如果我运行批处理,它会工作,保持焦点并登录。如果它在启动时自动运行,它有时会失去对登录窗口的关注,因此sendkey无法工作。
我试过我所知道的一切,用谷歌搜索了其中的垃圾,然后坚持……寻找一位可以提供帮助的大师!
*注意,暗淡的对象外壳是我尝试添加的最后一个东西,它完全删除了;-)
@if (@CodeSection == @Batch) @then
@echo off
set "username=UNAME"
set "password=PWORD"
start /MAX /B "" C:\"Program Files (x86)\MYPROGRAM\THEPROGRAM"\PROGF.exe
timeout /t 30 /nobreak >nul
Dim ObjShell :Set ObjShell = CreateObject("Wscript.Shell")
ObjShell.AppActivate("PROGF.exe")
CScript //nologo //E:JScript "%~F0" "%username%{tab}%password%{enter}"
goto :EOF
@end
WScript.CreateObject("WScript.Shell").SendKeys(WScript.Arguments(0));我试过将它作为.bat和.cmd文件...
发布于 2018-01-12 10:56:38
对于谁可以成功调用AppActivate使用的SetForegroundWindow接口函数,规则很简单。
您必须满足以下条件之一
系统限制哪些进程可以设置前台窗口。仅当满足以下条件之一时,进程才能设置前台窗口:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms633539(v=vs.85).aspx
https://stackoverflow.com/questions/48218732
复制相似问题