windows - 聚焦一个批量启动的应用程序

标签 windows batch-file windows-xp focus window

我正在通过批处理脚本运行一系列应用程序,我想确保打开的程序始终处于焦点位置。
我们需要确保这一点,因为这是一个实验性设置,我们希望尽量减少必须将焦点更改为全屏窗口等麻烦。

当前面的程序退出时,这个问题很少发生,有一段时间桌面是可见的,用户点击桌面上的某个图标,紧接着,正在处理序列中的下一个程序,新窗口不在焦点上。

由于我隐藏了命令窗口,所以问题变得更加频繁。

任何强制关注序列中下一个程序的方法,无论是批处理命令、操作系统的一些设置(我们在 Win XP 上)还是帮助应用程序都可能有所帮助。

最佳答案

如果你想关注另一个程序,你可以这样做。

call focus WindowTitle
exit /b

:focus
setlocal EnableDelayedExpansion 

    if ["%~1"] equ [""] (
        echo Please give the window's title.
        exit /b
    )

    set pr=%~1
    set pr=!pr:"=!

    echo CreateObject("wscript.shell").appactivate "!pr!" > "%tmp%\focus.vbs"
    call "%tmp%\focus.vbs"
    del "%tmp%\focus.vbs"

goto :eof 
endlocal 

我正在使用 vbscript 来聚焦应用程序。 您需要传递窗口的标题不是窗口的名称 (whatever.bat)。 为确保您获得正确的窗口焦点,您可以设置其标题。 示例:

title WindowTitle

关于windows - 聚焦一个批量启动的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8266840/

相关文章:

windows - 无法将 FOR 循环的输出分配给批处理文件中的另一个变量

c# - 更好地处理丢失的 .NET Framework (0xc0000135) 崩溃?

.net - 什么版本的 .NET 附带什么版本的 Windows?

c - 在使用 Windows 7/8.1 和 Windows 10 的 FormatMessage 中的 LocalFree/HeapFree 之前,我是否应该查询操作系统?

windows - Git difftool 不启动外部 DiffMerge 程序

windows - 从 Jenkins 运行批处理文件挂起并且不返回到 Jenkins 作业

windows - `cmd/s` 是做什么用的?

batch-file - xcopy 包含文件夹

css - windows XP 下的 Wordpress 站点 - 似乎有很多问题

VB6:如何以编程方式重新连接断开的映射驱动器