首页 > 解决方案 > 侦听弹出窗口并使用 Windows 批处理文件将其关闭

问题描述

我有以下批处理文件,用于在显示超时弹出窗口(标题为“信息”)时关闭它,这样我就不会退出系统。但是,如果未显示弹出窗口,则 sendkeys 命令将应用于活动窗口(例如,我正在处理的 Microsoft Word 或 Internet Explorer),这不是我想要的结果。如何仅在弹出窗口处于活动状态时侦听弹出窗口并应用 sendkeys 命令?

@if (@CodeSection == @Batch) @then

@echo off
    set SendKeys=CScript //nologo //E:JScript "%~F0"
    cls
    color 0a
    :loop
        %SendKeys% "{TAB}{TAB} "
        timeout /t 60 /nobreak >nul
    goto :loop

@end

var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.AppActivate("Information");
WshShell.SendKeys(WScript.Arguments(0));

标签: windowsbatch-filewsh

解决方案


试试这个。

@if (@CodeSection == @Batch) @then

@echo off
    set SendKeys=CScript //nologo //E:JScript "%~F0"
    cls
    color 0a
    :loop
        %SendKeys% "{TAB}{TAB} "
        timeout /t 60 /nobreak >nul
    goto :loop

@end

var WshShell = WScript.CreateObject("WScript.Shell");
if (WshShell.AppActivate("Information")) {
      WshShell.SendKeys(WScript.Arguments(0));
}   

推荐阅读