簡體   English   中英

C# - 在系統啟動時最小化到托盤

[英]C# - Minimize to tray at system startup

在我的應用程序中,我可以選擇在Windows啟動時啟動應用程序。 這很好用。 我也有它,以便在最小化時,應用程序最小化到系統托盤。 有沒有辦法讓我在與Windows同時啟動時自動最小化? 我能想到的唯一方法是檢索系統所處的時間,並使用該數據來確定機器最近是否已啟動。 顯然,這個理論存在很多缺陷。 任何人都有任何其他想法如何做到這一點?

在程序中實現命令行開關,使程序最小化到托盤。 在Windows啟動時啟動程序時,只需包含開關即可。

http://msdn.microsoft.com/en-us/library/acy3edy3.aspx

在窗體中,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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM