我正在尝试在运行自己的程序时最小化Windows中所有正在运行的应用程序。 我正在使用以下代码,但它正在最小化所有窗口包括我的程序。有什么方法可以最小化排除我的程序吗?
我的代码如下:
try {
Runtime.getRuntime().exec(
new String[]{
"cmd.exe",
"/c",
"\"" + System.getenv("APPDATA") +
"\\Microsoft\\Internet Explorer\\Quick Launch\\Show Desktop.scf\""});
} catch (Exception ex) {
}
答案 0 :(得分:3)
我正在尝试在运行自己的程序时最小化Windows中所有正在运行的应用程序
不要那样做。 相反,执行以下任一操作:
setAlwaysOnTop(true)
(并将其与其他希望始终位于最佳状态的应用程序一起展开。)这两种解决方案都是跨平台的。适用于Windows,Linux / Unix& OS X。
答案 1 :(得分:2)
为什么不使用JNA,它为您提供了很多与Windows一起玩的选项...... 这就是你使用JNA的方法。下载JNA.jar
HWND hwnd = User32.INSTANCE.FindWindow(null, nameOfWindow); // window title
User32.INSTANCE.ShowWindow(hwnd, 9); // SW_RESTORE
User32.INSTANCE.SetForegroundWindow(hwnd); // bring to front
希望这会有所帮助......
答案 2 :(得分:0)
您可以在Mac下发送Windows + D热键或Fn + F11:
Robot r = new Robot();
r.setAutoDelay(250);
r.keyPress(KeyEvent.VK_WINDOWS);
r.keyPress(KeyEvent.VK_D);
r.keyRelease(KeyEvent.VK_D);
r.keyRelease(KeyEvent.VK_WINDOWS);
答案 3 :(得分:0)
这适合我。
import java.awt.Robot;
import java.awt.event.KeyEvent;
{
Robot r = null;
try {
r = new Robot();
} catch (AWTException ex) {
Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
}
r.setAutoDelay(250);
r.keyPress(KeyEvent.VK_WINDOWS);
r.keyPress(KeyEvent.VK_D);
r.keyRelease(KeyEvent.VK_D);
r.keyRelease(KeyEvent.VK_WINDOWS);
}