我是脚本新手,我在网上找到了这个脚本,在我稍微调整后似乎可以满足我的需求。我试图在弹出窗口打开后关闭它,一旦弹出窗口打开,我需要一个标志从 false 更改为 true,反之亦然,下次窗口打开时。
似乎我目前定义标志“已连接”的地方是循环的一部分,并且每次迭代都会重新初始化,因此总是正确的。我只需要以某种方式初始化它一次并将其传递到循环中。
@if (@CodeSection == @Batch) @then
@echo off
set SendKeys=CScript //nologo //E:JScript "%~F0"
color 0a
:loop
%SendKeys% "{TAB}{TAB} "
timeout /t 60 /nobreak >nul
goto :loop
@end
var WshShell = WScript.CreateObject("WScript.Shell");
var connected = true;
if (WshShell.AppActivate("Popup window title")) {
if (connected) {
WScript.Echo("Inside Connected");
connected = false;
WshShell.SendKeys(WScript.Arguments(0));
}
else {
WScript.Echo("Inside Disconnected");
connected = true;
WshShell.SendKeys(WScript.Arguments(0));
};
}
我还尝试在“set SendKeys”之后使用 set 命令,例如“set connected=true”,然后我可以在范围内使用这个变量,比如 %connected%,但是当我尝试在 if 中访问它时它没有定义陈述。
任何帮助将非常感激!