Windows 使用命令行/批处理切换到/关注应用程序
我是否可以在cmd上使用命令切换到/关注选定的应用程序窗口 假设我有三个应用程序在工作:A、B、C,目前我专注于B。是否有命令(不是快捷方式)切换到/专注于应用程序A 也许我可以用批处理吗 我正在windows上工作。尝试: 第一个参数是要切换到的标题的开头(如果它是Windows 使用命令行/批处理切换到/关注应用程序,windows,batch-file,command-line,Windows,Batch File,Command Line,我是否可以在cmd上使用命令切换到/关注选定的应用程序窗口 假设我有三个应用程序在工作:A、B、C,目前我专注于B。是否有命令(不是快捷方式)切换到/专注于应用程序A 也许我可以用批处理吗 我正在windows上工作。尝试: 第一个参数是要切换到的标题的开头(如果它是Some title,则只能使用Some,它是唯一的)。第二个参数是空双引号。 通常,脚本用于向特定窗口发送键。但如果您保留第二个参数,如”,它将不会发送任何键。这应该可以: echo (new ActiveXObject("WSc
Some title
,则只能使用Some
,它是唯一的)。第二个参数是空双引号。
通常,脚本用于向特定窗口发送键。但如果您保留第二个参数,如”
,它将不会发送任何键。这应该可以:
echo (new ActiveXObject("WScript.Shell")).AppActivate("app A"); > focus.js
cscript //nologo focus.js
del focus.js
我在中的解决方案很大程度上基于@npocmaka的答案,但它对OPs特定的问题给出了更完整和准确的答案(我必须加入一个解决方案):如果指定的应用程序已经运行,它将激活并恢复该应用程序,如果没有,则启动该应用程序
为了完整起见,我将在此处重复代码-根据需要替换应用程序的图像名称和启动它所需的路径:
@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");
}
谢谢,这个剧本帮了我很多忙@Garric-有一个激活窗口的代码-
if(sh.AppActivate(title)){
,OP也接受了答案。答案本身解释了其余部分。谢谢。我正在寻找一个类似的函数。如果窗口被最小化,这个.bat文件似乎不起作用……有什么办法解决这个问题吗?@shelper有,但需要调用另一个脚本-检查这个:-用-h
检查这个用于的用法我很好,然后有一天我开始出错:访问被拒绝。输入错误:找不到脚本文件“C:\focus.js”。找不到C:\focus.js
@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");
}