在我的應用程序中,我可以選擇在Windows啓動時啓動應用程序。這很好。我也擁有它,以便在最小化時將應用程序最小化到系統托盤。有沒有一種方法可以讓它在與Windows同時啓動時自動最小化?我能想到的唯一方法是檢索系統已啓動的時間,並使用該數據確定機器最近是否啓動。顯然這個理論存在很多缺陷。任何人有任何其他想法如何做到這一點?C# - 在系統啓動時最小化爲托盤
回答
在程序中實現一個命令行開關,使程序最小化到托盤。當您在Windows啓動時啓動該程序時,只需包含該開關即可。
使用命令行參數,例如,/startminimised。在您的應用程序中,當應用程序啓動時檢查是否存在此開關(使用Environment.GetCommandLineArgs
),並在開關存在時自動將其最小化。
然後在您的「啓動時運行」選項中,確保應用程序以此開關啓動,例如,將運行註冊表項或啓動組快捷方式設置爲myapp.exe /startminimised
。
然而,當用戶運行您的應用程序時,他們不會(通常是!)指定開關,因此該應用程序將顯示爲一個窗口。
在的WindowState變化表單 「屬性」, 「最小化」,或代碼:
//After this:
InitializeComponent();
//Place this line:
WindowState = FormWindowState.Minimized;
希望這有助於!
除了上面的代碼之後,您可以將showintaskbar = false禁用showintaskbar – Arash
你可以用一個參數調用你的程序,例如「-minimized」,然後處理該參數在你的程序:
在你的Program.cs,處理參數,然後傳遞參數到Form1:
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (args.Length != 0){
Application.Run(new Form1(args[0]));
}
else
{
Application.Run(new Form1("normalState"));
}
}
在你Form1.cs中,你可以調用與傳遞的參數的功能,並儘量減少應用程序:
public Form1(string parameter)
{
InitializeComponent();
SetStartup(); //This function will set your app in the registry to run on startup. I'll explain this function below.
MinimizeApp(parameter);
}
例如,使用此功能,我用,如果英語新使用-minimized參數啓動應用程序,然後它將開始最小化,在任務欄中彈出一個notifyicon圖標,並且一個泡泡說應用程序已啓動並在後臺運行。
public void MinimizeApp(string parameter)
{
if (parameter == "-minimized")
{
this.WindowState = FormWindowState.Minimized;
notifyIcon1.Visible = true;
notifyIcon1.BalloonTipText = "Program is started and running in the background...";
notifyIcon1.ShowBalloonTip(500);
Hide();
}
}
SetStartup函數將您的程序放入註冊表中,以便它在啓動時運行。 「C:/programs/app.exe」 -minimized然後它會啓動最小化,當您重新啓動計算機,它也
private void SetStartup(){
Microsoft.Win32.RegistryKey key;
key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
key.SetValue(AppName, Application.ExecutablePath.ToString());
string ApplicationPath = "\"" + Application.ExecutablePath.ToString() + "\" -minimized";
key.SetValue("MyApplicationName", ApplicationPath);
key.Close();
}
現在,當你與-minimized參數啓動程序,例如
開始自動最小化。
- 1. 最小化窗口到系統托盤
- 2. C#程序崩潰的最小化到系統托盤
- 3. 當最小化到系統托盤時未收到WM_QUERYENDSESSION
- 4. 將Delphi表單最小化爲系統托盤
- 5. 麻煩以最小化的應用程序到系統托盤
- 6. 在啓動時在系統托盤中放入一個程序
- 7. 在C++中如何使用Win32 API來最小化系統托盤的窗口?
- 8. 如何將Silverlight應用程序最小化到系統托盤
- 9. 將表單最小化到系統托盤
- 10. 最小化python到Windows系統托盤(Vista)
- 11. 最小化對系統托盤的影響
- 12. 如何最小化靠近系統托盤的javafx階段?
- 13. 系統托盤圖標未在啓動時出現
- 14. PyQt4最小化到托盤
- 15. 最小化到托盤
- 16. 從系統托盤
- 17. 如何在TitleBar中添加「最小化到系統托盤」按鈕?
- 18. 系統托盤提示格式化
- 19. 空氣應用 - 在系統托盤中啓動?
- 20. 啓動AHK vs坐在系統托盤中閒置
- 21. C#系統停止托盤應用
- 22. C++中的系統托盤圖標
- 23. 如何直接在系統托盤中啓動應用程序? (.NET C#)
- 24. 將應用程序最小化到系統托盤 - 沒有圖標出現
- 25. 紅寶石鞋:最小化應用程序到Windows上的系統托盤
- 26. 點擊按鈕後,應用程序最小化到系統托盤?
- 27. 使用WPF最小化/關閉應用程序到系統托盤
- 28. 最大化系統托盤中的應用程序?
- 29. 系統托盤圖標
- 30. .NET最小化到托盤和最小化所需資源
很多應用程序都能成功完成這項工作。 MSN Messenger使用'/ background'開關來達到同樣的效果。 – adrianbanks