Запустить приложение в свернутом состоянии из Java - PullRequest
5 голосов
/ 26 марта 2009

Это вопрос к вопросу, который я задавал ранее:

запуск программы-если-не-уже-обкатка-Явы

У меня там не было отличного решения (так как его, кажется, нет), но у меня есть связанный вопрос:

Есть ли способ запустить приложение в коде Java (.exe в Windows, а не в приложении Java) и минимизировать его запуск? Или, возможно, минимизировать это сразу после запуска? Это решило бы проблему фокуса из другого вопроса, и уже работающая проблема более или менее справилась бы сама с собой.

Проблемы с уточнением снова: Java-клиент и .exe работают в Windows, и у меня действительно нет возможности писать какие-либо оболочки или использовать JNI mojo или что-то в этом роде. Мне более или менее нужно чисто Java-решение.

Опять же, спасибо за помощь, и я более чем готов принять ответ, который просто: «Это просто невозможно».

Ответы [ 3 ]

10 голосов
/ 26 марта 2009

Только для Windows:

public class StartWindowMinimized {

  public static void main(String[] args) throws IOException {
    if (args.length != 1) {
      System.err
          .println("Expected: one argument; the command to launch minimized");
    }
    String cmd = "cmd.exe /C START /MIN ";
    Runtime.getRuntime().exec(cmd + args[0]);
  }

}

Пример использования:

java -cp . StartWindowMinimized notepad.exe
java -cp . StartWindowMinimized cmd.exe

Чтобы понять аргументы:

cmd /?
START /?
0 голосов
/ 26 марта 2009

Если в этих приложениях есть переключатели командной строки, чтобы минимизировать их запуск, вы можете легко их использовать. В противном случае я не могу быть уверен на 100%, но я сильно сомневаюсь, что это возможно. У вас должен был бы быть какой-то способ взаимодействия с оконным менеджером Windows, который по своей природе очень специфичен для платформы, и поэтому Java вряд ли будет его включать. Всегда возможно, что кто-то написал стороннюю библиотеку для решения этой задачи, но мне это кажется маловероятным.

0 голосов
/ 26 марта 2009

Я не очень знаком со спецификой Java, но в соответствии с только что просмотренным веб-сайтом, если вы используете java.awt.Frame (который включает в себя JFrame из Swing), вы должны использовать функцию этого кадра с именем setState, который принимает Frame.ICONIFIED и Frame.NORMAL в качестве параметра (иконкой будет минимизированное состояние).

Как свернуть окно приложения Java?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...