2011-01-12 179 views
2

我正在開發一個Java應用程序,它必須啓動一個不同的應用程序。如果我使用Runtime.getRuntime().exec()啓動第二個應用程序,它將成爲活動進程,其窗口位於應用程序窗口之前。我真正想要做的是以「隱藏」模式啓動進程,以便其任務欄條目不出現,並且其窗口最初不可見或位於我的應用程序窗口後面。然後,我的應用程序會將其顯示出來,或者在它準備好時將它移到前面。這是可能的還是我要求太多?隱藏Java應用程序啓動的窗口應用程序?

這是一個演示。所以我不擔心安全問題。

編輯:丹尼爾的回答給了我一個主意。如果我使用Powershell來調用應用程序而不是CMD.EXE會怎麼樣?這樣可以讓我在沒有窗口的情況下啓動應用程序,然後將窗口拉回來嗎?我將使用啓動Java來啓動PowerShell來啓動應用程序,但到底是什麼!

+1

爲什麼不在你的應用程序「很好並準備好」時啓動這個外部應用程序?是否真的需要事先啓動外部應用程序?加載需要很長時間嗎? – Bernard 2011-01-12 16:54:19

+0

那麼,外部應用程序需要一段時間來加載。它基本上必須通過www連接到服務器以獲得一些信息,協商握手等。我不能讓我的應用程序等待所有這些。所以我想盡快啓動並繼續完成其他任務。 – 341008 2011-01-12 17:02:29

回答

0

你不會說這個其他應用程序是什麼,但我假設它是一個你無法控制的(即你不能給它一個參數選項以最小化模式啓動或類似。 )您可以在其他應用程序啓動後,在窗口上使用toFront()方法將窗口置於另一個窗口之前,而不是隱藏您啓動的應用程序。然後當你想透露另一個時,最小化你的窗口?

我是第一個承認這是一個懶散的解決方案,但它可能會取決於你以後的工作。

+0

你不知道需要多長時間才能看到其他窗口... – Daniel 2011-01-12 17:01:11

0

您不能提供這些參數,但是您可以使用支持這些參數的「start」命令(在cmd中試用它)。最終你必須使用cmd.exe shell來調用它,但這會起作用!

相關問題