隐藏主窗体/只允许一个实例运行 送分

时间:2022-08-29 19:35:21
主窗体work  副窗体logo,怎么能实现启动程序显示logo隐藏work?


如果程序111已经运行起来了,再双击111.exe提示“程序运行中”,之后不再运行该程序如何实现,谢谢


C#语言

14 个解决方案

#1


主窗体.Hide();
副窗体.Show();


program.cs

    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            if (runone())
                Application.Run(new Form1
                    ());
        }
        private static System.Threading.Mutex mutex;
        private static bool runone()
        {
            bool one;
//WindowsApplication2 住窗体的title。
            mutex = new System.Threading.Mutex(true, "WindowsApplication2", out   one);
            return one;
        }
    }

#2


一楼的都说了!!

#3


主窗体work  副窗体logo,怎么能实现启动程序显示logo隐藏work?
==
在Program.cs中
Application.Run(new logo()); 

#4


可以考虑使用application.idel+=在进程空闲的时候来做

#5


只允许一个实例运行
建议楼主看看设计模式里面的单件模式

#6


将logo的显示放在主窗体显示之前显示,等主窗体加载完成后让logo关闭就可以了

#7


如果程序111已经运行起来了,再双击111.exe提示“程序运行中”,之后不再运行该程序如何实现,谢谢 
--------------
这个可以通过process获得系统的进程,然后判断看是否存在该进程
具体:
System.Diagnostics.Process[] p = System.Diagnostics.Process.GetProcesses();
            for(...)
            {
                if (p[i].ProcessName == "111.exe")
                { }
            }

#8


单实例运行
这个有很多方法,借用“baidu一下就知道”

#9


程序唯一实例问题,
http://blog.csdn.net/zhzuo/archive/2006/06/30/857405.aspx
http://blog.csdn.net/zhzuo/archive/2006/07/04/874745.aspx
启动窗体问题,
http://www.codeproject.com/csharp/apploadingarticle.asp?target=splashForm
http://www.codeproject.com/csharp/ApplicationContextSplash.asp?target=splashForm

#10


1楼正解,下面的方法都不好,怎么还向上面贴

#11


我现在也正研究这个问题呢

#12


引用 10 楼 crescens 的回复:
1楼正解,下面的方法都不好,怎么还向上面贴

都好都好,呵呵!在进程里监控也好啊,嘿嘿.
没理由不让人多发点例子,LZ也好多学习几个方法.

#13


强大。、。。。谢谢了·~~

#14


7楼的方法,如果程序名称一样,就无法启动,如果改了程序名称,就会无法生效

#1


主窗体.Hide();
副窗体.Show();


program.cs

    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            if (runone())
                Application.Run(new Form1
                    ());
        }
        private static System.Threading.Mutex mutex;
        private static bool runone()
        {
            bool one;
//WindowsApplication2 住窗体的title。
            mutex = new System.Threading.Mutex(true, "WindowsApplication2", out   one);
            return one;
        }
    }

#2


一楼的都说了!!

#3


主窗体work  副窗体logo,怎么能实现启动程序显示logo隐藏work?
==
在Program.cs中
Application.Run(new logo()); 

#4


可以考虑使用application.idel+=在进程空闲的时候来做

#5


只允许一个实例运行
建议楼主看看设计模式里面的单件模式

#6


将logo的显示放在主窗体显示之前显示,等主窗体加载完成后让logo关闭就可以了

#7


如果程序111已经运行起来了,再双击111.exe提示“程序运行中”,之后不再运行该程序如何实现,谢谢 
--------------
这个可以通过process获得系统的进程,然后判断看是否存在该进程
具体:
System.Diagnostics.Process[] p = System.Diagnostics.Process.GetProcesses();
            for(...)
            {
                if (p[i].ProcessName == "111.exe")
                { }
            }

#8


单实例运行
这个有很多方法,借用“baidu一下就知道”

#9


程序唯一实例问题,
http://blog.csdn.net/zhzuo/archive/2006/06/30/857405.aspx
http://blog.csdn.net/zhzuo/archive/2006/07/04/874745.aspx
启动窗体问题,
http://www.codeproject.com/csharp/apploadingarticle.asp?target=splashForm
http://www.codeproject.com/csharp/ApplicationContextSplash.asp?target=splashForm

#10


1楼正解,下面的方法都不好,怎么还向上面贴

#11


我现在也正研究这个问题呢

#12


引用 10 楼 crescens 的回复:
1楼正解,下面的方法都不好,怎么还向上面贴

都好都好,呵呵!在进程里监控也好啊,嘿嘿.
没理由不让人多发点例子,LZ也好多学习几个方法.

#13


强大。、。。。谢谢了·~~

#14


7楼的方法,如果程序名称一样,就无法启动,如果改了程序名称,就会无法生效