我是否可以在cmd上使用命令切换到/关注所选应用程序窗口?
假设我有三个应用程序正在运行:A,B,C,目前我专注于B.是否有一个命令(不是快捷方式)切换到/专注于应用程序A?
也许我可以批处理吗?
我在窗户上工作。
答案 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");
}