示例#1
0
        static void Main()
        {
            string mutexName = "RemotePanel_Application_StartMutex";

            mutexName = "Global\\" + mutexName;
            System.Security.AccessControl.MutexAccessRule rule =
                new System.Security.AccessControl.MutexAccessRule(
                    new System.Security.Principal.SecurityIdentifier(
                        System.Security.Principal.WellKnownSidType.WorldSid, null),
                    System.Security.AccessControl.MutexRights.FullControl,
                    System.Security.AccessControl.AccessControlType.Allow);
            System.Security.AccessControl.MutexSecurity mutexSecurity =
                new System.Security.AccessControl.MutexSecurity();
            mutexSecurity.AddAccessRule(rule);
            bool createdNew;

            System.Threading.Mutex mutex =
                new System.Threading.Mutex(false, mutexName, out createdNew, mutexSecurity);

            if (createdNew == false)
            {
                MessageBox.Show("サーバーが混合するため、多重起動はできません", "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                mutex.Close();
                return;
            }

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MainForm());
        }
 public void SetAccessRule(System.Security.AccessControl.MutexAccessRule rule)
 {
 }
 public void RemoveAccessRuleSpecific(System.Security.AccessControl.MutexAccessRule rule)
 {
 }
 public bool RemoveAccessRule(System.Security.AccessControl.MutexAccessRule rule)
 {
     throw null;
 }
 public bool RemoveAccessRule(System.Security.AccessControl.MutexAccessRule rule)
 {
     return(default(bool));
 }