特投网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

(站外) 特投工作室

查看: 4324|回复: 0

C# .net防止一个程序(WinForm)重复运行的方法

[复制链接]

2583

主题

1018

回帖

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
70059
QQ
发表于 2016-3-7 19:31:18 | 显示全部楼层 |阅读模式
//在写一些服务型的软件的时候,你可能不希望一个操作系统里有两个副本在运行,这样也许会扰乱你的操作。这时,你就需要限制程序的副本。下面的这个方法,很简单的就可以实现上述功能。

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Diagnostics;

namespace TestProcessCount
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            int processCount = 0;
            Process[] pa = Process.GetProcesses();//获取当前进程数组。
            foreach (Process PTest in pa)
            {
                if (PTest.ProcessName == Process.GetCurrentProcess().ProcessName)
                {
                    processCount += 1;
                }
            }
            if (processCount > 1)
            {
                //如果程序已经运行,则给出提示。并退出本进程。
                DialogResult dr;
                dr = MessageBox.Show( Process.GetCurrentProcess().ProcessName+"程序已经在运行!", "退出程序", MessageBoxButtons.OK, MessageBoxIcon.Error);//可能你不需要弹出窗口,在这里可以屏蔽掉
                return; //Exit;
              
            }
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new frmBrowser());
        }
    }
}

//转自:http://www.cnblogs.com/sixiweb/archive/2011/03/03/1969675.html
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

您尚未登录,请登录后浏览更多精彩内容!
 立即注册
找回密码

QQ|Archiver|手机版|小黑屋|特投网 ( 皖ICP备13010674号-1 

GMT+8, 2024-12-22 13:04 , Processed in 0.026332 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表