如何直接在系统托盘中启动应用程序?(.NET C#)

cla*_*aws 9 .net c#

我的意思是当用户启动我的应用程序(exe)时.我希望它直接在系统托盘中启动,而不显示窗口.像防病毒软件和下载管理器一样,它们默默地在系统托盘中启动和运行.

我想要相同的效果,当用户点击notifyIcon的contextmenustrip的"show"按钮时,只有应用程序应该显示GUI.

我正在使用它,但它没有用

    private void Form_Load(object sender, EventArgs e)
    {
        this.Hide();
    }
Run Code Online (Sandbox Code Playgroud)

可能我需要在其他没有GUI但具有notifyIcon和ContextMenuStrip的类中使用Main()函数,该选项将实例化GUI窗口类.对?

Mat*_*ley 30

我通常设置这样的方法是修改它Program.cs看起来像下面这样:

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        using (NotifyIcon icon = new NotifyIcon())
        {
            icon.Icon = System.Drawing.Icon.ExtractAssociatedIcon(Application.ExecutablePath);
            icon.ContextMenu = new ContextMenu(new MenuItem[] {
                new MenuItem("Show form", (s, e) => {new Form1().Show();}),
                new MenuItem("Exit", (s, e) => { Application.Exit(); }),
            });
            icon.Visible = true;

            Application.Run();
            icon.Visible = false;
        }
    }
Run Code Online (Sandbox Code Playgroud)

使用这个,您不需要担心隐藏而不是关闭表单和所有其他可能导致的黑客攻击...您也可以创建一个单例表单而不是Form每次单击show form选项时实例化一个新表单.这是建立起来的东西,而不是最终的解决方案.