2013-09-24 1 views
1

Я пытаюсь свести к минимуму все запущенные приложения в Windows при запуске моей собственной программы. Я использую следующий код, но он сводит к минимуму все окна , включая моей программы. Есть ли способ минимизировать приложения , за исключением моей программы?Минимизировать все другие приложения, за исключением моей собственной программы

Мой код выглядит следующим образом:

try { 
    Runtime.getRuntime().exec(
     new String[]{ 
      "cmd.exe", 
      "/c", 
      "\"" + System.getenv("APPDATA") + 
      "\\Microsoft\\Internet Explorer\\Quick Launch\\Show Desktop.scf\""}); 
} catch (Exception ex) { 
} 
+1

Вы пытались восстановить свою программу после выполнения команды? – MadProgrammer

+0

как я могу восстановить приложение –

+0

Что вы используете? Качели/AWT/...? – MadProgrammer

ответ

1

Почему бы вам не использовать ЮНА, это дает вам множество вариантов, чтобы играть с окнами ... это, как вы это сделать с помощью ЮНА. скачать 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 

Надеется, что это помогает ...

3

Я пытаюсь свести к минимуму всех запущенным приложений в окнах при запуске собственной программы

Do не сделать что. Вместо, сделать что-либо из:

  • Зов setAlwaysOnTop(true) (и пули его с любым другим приложением, которое хочет быть всегда на высоте.).
  • Использование Full Screen Exclusive Mode. Вы должны (должны) рисовать каждый пиксель экрана, другие приложения. становятся неуместными.

Оба эти решения являются кросс-платформенный & будет работать на Windows, Linux/Unix & OS X.

+0

, но мое требование состоит в том, чтобы свести к минимуму другие приложения. Mr Andrew –

+3

«Требование» не является оправданием для создания графического интерфейса, который делает такую ​​раздражающую, тяжелую и агрессивную вещь. GUI является гостем на рабочем столе пользователя, но это приложение. похоже, хочет, чтобы пользователь был как сука. –

+0

Эксклюзивный полноэкранный режим - ужасная идея. Многие новые игры поддерживают «оконный полноэкранный режим» по очень веской причине! – ThiefMaster

0

Вы можете отправить Windows + D или клавиши Fn + F11 под Mac:

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); 
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); 
}