alexmen

专注.net软件开发,项目管理体系PMBOK.

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
 1 static class Program
 2     {
 3         [System.Runtime.InteropServices.DllImport("coredll.Dll", SetLastError = true)]
 4         private static extern int ReleaseMutex(IntPtr hMutex);
 5 
 6         [System.Runtime.InteropServices.DllImport("coredll.Dll", SetLastError = true)]
 7         private static extern IntPtr CreateMutex(string lpMutexAttributes, bool bInitialOwner, string lpName);
 8         /// <summary>
 9         /// 应用程序的主入口点。
10         /// </summary>
11         [MTAThread]
12         static void Main()
13         {
14             try
15             {
16                 IntPtr hMutex = CreateMutex(null, false, "XXXXX");
17                 if (System.Runtime.InteropServices.Marshal.GetLastWin32Error() != 0183)
18                 {
19                     Application.Run(new FrmMain());
20                 }
21                 else
22                 {
23                     MessageBox.Show("程序已经运行.", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
24                     ReleaseMutex(hMutex);
25                 }
26             }
27             catch (Exception)
28             {
29 
30                 MessageBox.Show("发生未知错误,程序退出!");
31                 Application.Exit();
32             }
33 
34         }
35     }

 

posted on 2016-01-08 13:38  alexmen  阅读(266)  评论(0编辑  收藏  举报