Answer

专注于Mobile,WinCE
  首页  :: 新随笔  :: 联系 :: 管理

WINCE.NET中程序只运行一次

Posted on 2007-07-06 13:40  answer  阅读(1893)  评论(3编辑  收藏  举报

 

 1 using System;
 2 using System.Runtime.InteropServices;
 3 
 4 class Mutex
 5 {
 6     [DllImport("coredll.Dll")]
 7     private static extern int GetLastError();
 8 
 9     [DllImport("coredll.Dll")]
10     private static extern int ReleaseMutex(IntPtr hMutex);
11 
12     [DllImport("coredll.Dll")]
13     private static extern IntPtr CreateMutex(
14         SECURITY_ATTRIBUTES lpMutexAttributes,
15         bool bInitialOwner, string lpName);
16 
17     [StructLayout(LayoutKind.Sequential)]
18     public class SECURITY_ATTRIBUTES
19     {
20         public int nLength;
21         public int lpSecurityDescriptor;
22         public int bInheritHandle;
23     }
24 
25     private const int ERROR_ALREADY_EXISTS = 0183;
26 
27     public static void Run()
28     {
29         IntPtr hMutex = CreateMutex(nullfalse"ZJS_FJ");
30         if (GetLastError() != ERROR_ALREADY_EXISTS)
31         {
32             System.Windows.Forms.Application.Run(new Form1());
33             return;
34         }
35         else
36         {
37             ReleaseMutex(hMutex);
38             return;
39         }
40     }
41 // class
42