[英]Launch Application in a minimized state from 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作為參數(圖標化將是最小化狀態)。
如果這些應用程序具有命令行開關以使它們開始最小化,那么您可以輕松地使用它們。 否則,我不能100%肯定,但我非常懷疑這是可能的。 您必須有一些方法來與Windows窗口管理器進行交互,Windows窗口管理器本質上是特定於平台的,因此Java不太可能包含它。 總有可能有人編寫了第三方庫來處理任務,但這對我來說似乎不太可能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.