我有java桌面应用程序。
当用户单击应用程序的快捷方式时,它会创建任务栏(Project.exe)中显示的单个实例,但是当用户再次单击时,它会创建另一个实例,但我不希望在任务栏中显示多个实例。
当用户点击Teamviewer和Skype应用程序时,我想要类似的行为。它创建了单个实例,如果它已经打开,那么它会先于窗口(意味着最大化它。)
但是如果应用程序已经运行,如何最大化窗口(意味着最小化窗口应该最大化点击应用程序图标)?
请提供解决方案。
提前致谢。
答案 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""