2012-11-17 246 views
0

我有一個應用程序需要運行的窗口,我有它成功地做,但我需要它開始進入系統托盤,我也有它做,但這也發生在用戶從桌面圖標啓動它時發生。使用Windows系統托盤啓動應用程序,但通常在用戶運行時啓動應用程序?

我現在面臨的問題是讓它在啓動時在托盤中啓動,同時允許用戶打開應用程序而不會在啓動時消失到托盤上。

我已經看到使用啓動開關中的啓動開關,例如c:\ program.exe -h和它的-h使得應用程序在托盤中啓動。

有沒有這樣的事情可能,或者是否有另一種解決方法呢?

我已經考慮過像一個註冊表項在一天內第一次啓動時發生更改的情況,但是如果計算機已關閉並再次打開,所有我曾經想過的問題都會出現上述錯誤。除了創建另一個啓動應用程序,我不知道如何實現這一點。

請注意: 應用程序可以被終止,因此如果檢測到現有進程並最大化它,如果找到並不合適,則會導致其他問題。這也可以在一定程度上完成,因爲一次只能運行一個實例,但是如前所述,我可以在第一次運行時將它啓動到托盤,但是如果它終止並再次啓動,它將再次進入托盤,這是我想避免。

+2

適於使用命令行選項是正確的解決方案。 –

回答

0

應用程序應該有HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

,以及如何在註冊表中的條目使用C#

Microsoft.Win32.RegistryKey key; 
key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("Names"); 
key.SetValue("Name", "Isabella"); 
key.Close(); 
0

C# - Is it possible to create a Windows Forms application that can run from the command line with parameters?回答,並使用commad行選項漢斯帕桑特說寫什麼系統登錄鍵。

這是我放入Program.cs中類的代碼:

[STAThread] 
     static void Main(string[] args) 
     { 
      Application.EnableVisualStyles(); 
      Application.SetCompatibleTextRenderingDefault(false); 
      Main_Form main = new Main_Form(); 
      main.Show(); 
      foreach (string s in args) 
      { 
       if (s == "-h") 
       { 
        main.Hide(); 
       } 
      } 
      Application.Run(); 
     } 

集的代碼從Hide form at launch

相關問題