[英]C# - Minimize to tray at system startup
在我的應用程序中,我可以選擇在Windows啟動時啟動應用程序。 這很好用。 我也有它,以便在最小化時,應用程序最小化到系統托盤。 有沒有辦法讓我在與Windows同時啟動時自動最小化? 我能想到的唯一方法是檢索系統所處的時間,並使用該數據來確定機器最近是否已啟動。 顯然,這個理論存在很多缺陷。 任何人都有任何其他想法如何做到這一點?
在程序中實現命令行開關,使程序最小化到托盤。 在Windows啟動時啟動程序時,只需包含開關即可。
在窗體中,WindowState中的“屬性”更改為“最小化”,或者在代碼中:
//After this:
InitializeComponent();
//Place this line:
WindowState = FormWindowState.Minimized;
希望這有幫助!
使用命令行參數,例如/ startminimised。 在您的應用程序中,在應用程序啟動時檢查是否存在此開關(使用Environment.GetCommandLineArgs
),並在交換機存在時自動最小化。
然后在“運行啟動時”選項中,確保使用此開關啟動應用程序,例如將Run注冊表項或Startup組快捷方式設置為myapp.exe /startminimised
。
但是,當用戶運行您的應用時,他們不會(通常!)指定開關,因此應用程序將顯示為窗口。
您可以使用參數調用程序,例如“-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函數將您的程序放入注冊表中,因此它將在啟動時運行。
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參數啟動程序時,例如:“c:/programs/app.exe”--minimized然后它將開始最小化,當您重新啟動計算機時,它也會自動啟動最小化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.