簡體   English   中英

從Java啟動應用程序處於最小化狀態

[英]Launch Application in a minimized state from Java

這是我之前提出的問題的后續問題:

開始-程序-如果-不已經磨合的Java

我沒有得到一個很好的解決方案(因為似乎沒有一個),但我有一個相關的問題:

無論如何用Java代碼(Windows中的.exe,而不是Java應用程序)啟動應用程序,並讓它開始最小化? 或者也許在開始后立即將其最小化? 這將解決另一個問題的焦點問題,而已經存在的問題或多或少會自行處理。

再次澄清問題:Java客戶端和.exe在Windows中運行,我真的沒有能力編寫任何包裝器或使用JNI mojo或類似的東西。 我或多或少需要一個純Java解決方案。

再次感謝您的幫助,我非常願意接受一個簡單的回答:“這是不可能的。”

僅適用於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 /?

我對Java的細節並不熟悉,但根據我剛看過的網站,如果你使用的是java.awt.Frame(包括來自Swing的JFrame),你應該使用該框架的函數調用setState,它接受Frame.ICONIFIED和Frame.NORMAL作為參數(圖標化將是最小化狀態)。

如何最小化Java應用程序窗口?

如果這些應用程序具有命令行開關以使它們開始最小化,那么您可以輕松地使用它們。 否則,我不能100%肯定,但我非常懷疑這是可能的。 您必須有一些方法來與Windows窗口管理器進行交互,Windows窗口管理器本質上是特定於平台的,因此Java不太可能包含它。 總有可能有人編寫了第三方庫來處理任務,但這對我來說似乎不太可能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM