最大化已经运行的应用程序(团队查看器,Skype等)

时间:2014-09-17 06:54:35

标签: java batch-file cmd window

我有java桌面应用程序。

当用户单击应用程序的快捷方式时,它会创建任务栏(Project.exe)中显示的单个实例,但是当用户再次单击时,它会创建另一个实例,但我不希望在任务栏中显示多个实例。

当用户点击Teamviewer和Skype应用程序时,我想要类似的行为。它创建了单个实例,如果它已经打开,那么它会先于窗口(意味着最大化它。)

但是如果应用程序已经运行,如何最大化窗口(意味着最小化窗口应该最大化点击应用程序图标)?

请提供解决方案。

提前致谢。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

不可能使用简单的批处理。这是一个jscript / batch混合(保存为.bat):

 @if (@x)==(@y) @end /***** jscript comment ******
     @echo off

     cscript //E:JScript //nologo "%~f0" "%~1"
     exit /b 0

 @if (@x)==(@y) @end ******  end comment *********/

 var app_name = WScript.Arguments.Item(0);
 var shell =  WScript.CreateObject("WScript.Shell");
 shell.AppActivate(app_name);
 shell.SendKeys("% x");

脚本接受一个参数 - 窗口标题 - 它将尝试最大化。最后,您可以将保存的.bat应用于快捷方式(在目标字段中)。

在这里看看我的测试快捷方式启动并最大化记事本(程序是通过cmd.exe启动的):

C:\Windows\System32\cmd.exe /c " start C:\Windows\notepad.exe &   call C:\tests\focuson.bat "Untitled - Notepad""