使用命令行/批处理切换到/专注于应用程序

时间:2016-03-14 13:27:06

标签: windows batch-file command-line

我是否可以在cmd上使用命令切换到/关注所选应用程序窗口?

假设我有三个应用程序正在运行:A,B,C,目前我专注于B.是否有一个命令(不是快捷方式)切换到/专注于应用程序A?

也许我可以批处理吗?

我在窗户上工作。

3 个答案:

答案 0 :(得分:10)

尝试使用sendKeys.bat

call sendkeys.bat "Title A" ""

第一个参数是您要切换到的标题的开头(如果它是Some Title,您只能使用Some它是唯一的足够的。)。第二个参数是空双引号。 通常,脚本用于将密钥发送到特定窗口。但是如果您离开第二个参数,如"",它将不会发送任何密钥。

答案 1 :(得分:3)

这应该有效:

echo (new ActiveXObject("WScript.Shell")).AppActivate("app A"); > focus.js
cscript //nologo focus.js
del focus.js

答案 2 :(得分:1)

我在this gist中的解决方案很大程度上基于@npocmaka的答案,但是它为OP的特定问题提供了更为完整和准确的答案(我不得不加入couple more references进行此操作):如果指定的应用程序已经在运行,它将激活并还原它;如果尚未运行,则将其启动。

为了完整性,我将在此处重复代码-根据需要替换应用的图片名称和启动它的路径:

@if (@X)==(@Y) @end /* JScript comment 

@echo off 
setlocal
for /f "tokens=2" %%i in ('tasklist /FI "IMAGENAME eq Fork.exe" ^| find /I "Fork.exe"') do set pid=%%i
if "%pid%" == "" (
    %localappdata%\Fork\Fork.exe
) else (
    cscript //E:JScript //nologo "%~f0" "%~nx0" "%pid%"
)
exit /b %errorlevel% 
endlocal

@if (@X)==(@Y) @end JScript comment */ 

var sh=new ActiveXObject("WScript.Shell"); 
if (sh.AppActivate(WScript.Arguments.Item(1)) == 0) {
    sh.SendKeys("% r"); 
}