如题:
c#怎么控制该程序只能启动一次?并且启动后不显示界面,启动第二次没有任何反应请高手指点~~

解决方案 »

  1.   

    什么类型的程序,应该是winform吧,可以在启动时候判断,如果进程中已经存在该程序,则退出
      

  2.   


            [STAThread]
            static void Main()
            {
                bool isCanStart;
                System.Threading.Mutex mutex = new System.Threading.Mutex(false, "AA", out   isCanStart);
                if (isCanStart)
                {
                    Application.EnableVisualStyles();                
                    Application.SetCompatibleTextRenderingDefault(false);
                    Application.Run(new form1());
                }
                else
                {
                    MessageBox.Show("程序已运行!");
                }
            }
      

  3.   

    用互斥体Mutex,一个同步基元,也可用于进程间同步
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Threading;namespace ConsoleApplication1
    {
        class Program
        {
            private static Mutex mutex;
            static void Main(string[] args)
            {
                bool create = false;
                mutex = new Mutex(true, "应用程序名", out create);
                if (create)
                {
                    Console.WriteLine("abc Runing");
                    Console.Read();
                }
            }
        }
    }
      

  4.   

    应用程序启动后,必须显示Console或者WinForm界面的。如果你想不显示界面,可以尝试把主窗体的透明度,大小,可见性改变。要不就干脆启动Windows Serveice算了。
    防止二次启动:在注册表里设置一个标识,启动前根据标识判断是否启动。
      

  5.   

    class Program
        {
            private static Mutex mutex;
            static void Main(string[] args)
            {
                bool create = false;
                mutex = new Mutex(true, "应用程序名", out create);
                if (create)
                {
                    Console.WriteLine("abc Runing");
                    Console.Read();
                }
            }
        }
    写在主程序的program
      

  6.   

    程序只能启动一次已经实现了,在此谢谢大家~~!
    可是怎么能让程序界面隐藏我还没找到方法
    a8cake说改变窗体的透明度,大小,可见性,这些属性我怎么没在FORM属性里找到呢??请高手指点!!谢谢~~
      

  7.   

    可以用notifyIcon控件,程序启动的时候变成最小托盘 在Load事件中加入 
    this.ShowInTaskbar = false;
    WindowState = FormWindowState.Minimized;
    要显示的时候在notifyIcon的MouseUp加代码就可以 
    如: 
    private void notifyIcon1_MouseUp(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            Form1 form = new Form1();
            form.ShowDialog();
        }
    }
      

  8.   

    隐藏没找到?不会吧.Visuale=false不可以吗,或者是hide();
    或者是left或者top=-20000;
      

  9.   


    visible和hide这两个方法都不管用呀~~9楼的方法管用!!呵呵~~多谢大家了