http://www.cnblogs.com/answer/archive/2007/07/06/808418.html
点赞  2009-10-12 13:43
#region Api_Call CreateMutex;
            IntPtr hMutex;
            hMutex = CreateMutex(null, false, "Manager");
            if (GetLastError() != ERROR_ALREADY_EXISTS)
            {
                Application.Run(new FrmMainForm());
            }
            else
            {
                ReleaseMutex(hMutex);
            }
            #endregion



const int ERROR_ALREADY_EXISTS = 0183;
        [DllImport("coredll.Dll")]
        private static extern int GetLastError();

        [DllImport("coredll.Dll")]
        private static extern int ReleaseMutex(IntPtr hMutex);

        [DllImport("coredll.Dll")]
        private static extern IntPtr CreateMutex(SECURITY_ATTRIBUTES lpMutexAttributes, bool bInitialOwner, string lpName);

        [StructLayout(LayoutKind.Sequential)]
        public class SECURITY_ATTRIBUTES
        {
            public int nLength;
            public int lpSecurityDescriptor;
            public int bInheritHandle;
        }
点赞  2010-5-7 16:36
12
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复