Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 使用命令行/批处理切换到/关注应用程序_Windows_Batch File_Command Line - Fatal编程技术网

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

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

假设我有三个应用程序在工作:A、B、C,目前我专注于B。是否有命令(不是快捷方式)切换到/专注于应用程序A

也许我可以用批处理吗

我正在windows上工作。

尝试:

第一个参数是要切换到的标题的开头(如果它是
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"); 
}