利用c#制作托盘程序,并禁止多个应用实例运行

时间:2022-04-23
本文章向大家介绍利用c#制作托盘程序,并禁止多个应用实例运行,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

托盘程序的制作:

1.把NotifyIcon控件拉一个到窗体上,并设置NotifyIcon的Icon(很重要!否则运行后看不到效果) 2.窗体关闭时,将程序最小化到系统托盘上

private void Form1_FormClosing(object sender, FormClosingEventArgs e)

{

    //MessageBox.Show("程序将最小化到系统托盘区");

    e.Cancel = true; // 取消关闭窗体 

    this.Hide();

    this.ShowInTaskbar = false;//取消窗体在任务栏的显示 

    this.notifyIcon1.Visible = true;//显示托盘图标 



}

3.放一个上下文菜单,添加几个基本项,"显示主窗体","退出" ,将这个菜单挂到NotifyIcon上

private void menuShow_Click(object sender, EventArgs e)

{

    this.Show();

    this.ShowInTaskbar = true;

    this.notifyIcon1.Visible = false;

}


private void menuExit_Click(object sender, EventArgs e)

{

    this.Dispose(true);

    Application.ExitThread();

}

4.左键单击托盘图标时,显示主窗体,右击时当然是弹出上面设置的菜单

private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)

{

    if (e.Button == MouseButtons.Left)

    {

        this.Show();

        this.ShowInTaskbar = true;

        this.notifyIcon1.Visible = false;

    }

}

防止这个程序同时运行多个

using System;

using System.Collections.Generic;

using System.Windows.Forms;

using System.Threading;



namespace LuceneTest

{

    static class Program

    {

        /// <summary>

        /// 应用程序的主入口点。

        /// </summary>

        [STAThread]

        static void Main()

        {

            bool bCreatedNew;

            Mutex m = new Mutex(false, "Product_Index_Cntvs", out bCreatedNew);

            if (bCreatedNew)

            {

                Application.EnableVisualStyles();

                Application.SetCompatibleTextRenderingDefault(false);

                Application.Run(new Form1());

            }

        }

    }

}