2014-12-02 19 views
2

我有一個應用程序,旨在儘量減少到系統托盤。那裏沒有問題。Windows如何從桌面快捷方式強制「最小化」狀態?

我遇到的問題是,我不能確定什麼的Windows是做給力的最小化狀態時,我成立了一個桌面快捷方式到可執行文件並啓動它,如:

enter image description here

我在窗體的構造函數中放置一些調試輸出並通過快捷方式啓動。我沒有得到命令行參數,並檢查WindowState產生Normal。然而,應用程序開始最小化到任務欄。

但是,這就是問題所在:我希望它最小化到系統托盤,就好像表單在屏幕上並且用戶最小化它一樣。並非所有的時候,當使用「最小化」快捷方式時,或當用戶單擊表單上的最小化時,當然。

編輯:好奇......我最初的測試有缺陷,因爲我檢查了構造函數。將該測試置於Load方法中產生了一個Minimized狀態,然後我可以響應並調用我的代碼以執行「最小化到托盤」。

+1

Downvoter,小心點評? – DonBoitnott 2014-12-02 20:01:27

+1

我也沒有得到讚揚。 – siride 2014-12-02 20:03:06

+0

你有沒有看過在互聯網上發佈的任何工作示例,以及在你的代碼中還有'SO'是否設置了WindowState ..例如'1this.WindowState = FormWindowState.Minimized;'[App Minimize to Tray] (http://stackoverflow.com/questions/1730731/how-to-start-winform-app-minimized-to-tray)我認爲你需要這個在這裏我只是重新讀你的問題http:// stackoverflow。 com/questions/16140627 /最小化到托盤 – MethodMan 2014-12-02 20:03:26

回答

2

Windows正在啓動具有最小化主窗口參數的進程。

在C#中,您可以通過在Process.Start()中設置WindowStyle (MSDN)ProcessStartInfo來執行相同的操作。

在原生世界中,您可以使用CreateProcess (MSDN) API並將STARTUPINFO設置爲wShowWindowSW_MINIMIZE

要查詢窗口狀態,請使用GetWindowInfo (MSDN),查看dwStyle並檢查是否設置了WS_MINIMIZE。在C#中,這應該在Form.WindowState

相關問題