static void Main() { bool ok; // Only allow one instance of the switcher to start exclusiveAppMtx = new System.Threading.Mutex(true, "{D39FAB11-ED23-478d-AF57-C638F79A7BA8}", out ok); if (!ok) { return; } log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(Assembly.GetExecutingAssembly().Location + ".config")); log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); log.Info("Application Started"); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; Application.ThreadException += Application_ThreadException; Application.ApplicationExit += Application_ApplicationExit; monitor.RegChanged += new EventHandler(OnRegChanged); monitor.Error += new System.IO.ErrorEventHandler(OnRegMonError); try { log.Info("Starting plugin..."); //Populate notifications from XML file _assembly = Assembly.GetExecutingAssembly(); alertReader = new StreamReader(_assembly.GetManifestResourceStream(Resources.ResourceManager.GetString("strings.xml"))); XmlSerializer deserializer = new XmlSerializer(typeof(List <Alert>)); TextReader textReader = alertReader; alertList = (List <Alert>)deserializer.Deserialize(textReader); textReader.Close(); } catch (Exception ex) { log.Error(ex.ToString()); MessageBox.Show(Resources.ResourceManager.GetString("Error loading")); } if (SetupPlugin()) { OnRegChanged(null, EventArgs.Empty); _systray = new TrayIcon(); Application.Run(); } }
public static void Initialize() { Program.AssertOffEventThread(); Thread thread; string evname; EventWaitHandleSecurity evsec; EventWaitHandleAccessRule evrule; string user; xgs = Program.GetXGS(); systray = Program.GetSystray(); alertList = Program.GetAlertList(); evname = xgs.GetAlertsEventName(); user = Environment.UserDomainName + "\\" + Environment.UserName; evalerts = EventWaitHandle.OpenExisting(evname, EventWaitHandleRights.ReadPermissions | EventWaitHandleRights.ChangePermissions); evsec = evalerts.GetAccessControl(); evrule = new EventWaitHandleAccessRule(user, EventWaitHandleRights.Synchronize | EventWaitHandleRights.Modify, AccessControlType.Deny); evsec.RemoveAccessRule(evrule); evrule = new EventWaitHandleAccessRule(user, EventWaitHandleRights.Synchronize | EventWaitHandleRights.Modify, AccessControlType.Allow); evsec.AddAccessRule(evrule); evalerts.SetAccessControl(evsec); evalerts = EventWaitHandle.OpenExisting(evname); thread = new Thread(alertUpdater); thread.Name = "XenClient Alert Thread"; thread.IsBackground = true; thread.Start(); }
public static void Initialize() { Program.AssertOffEventThread(); Thread thread; string evname; EventWaitHandleSecurity evsec; EventWaitHandleAccessRule evrule; string user; xgs = Program.GetXGS(); systray = Program.GetSystray(); alertList = Program.GetAlertList(); evname = xgs.GetAlertsEventName(); user = Environment.UserDomainName + "\\" + Environment.UserName; evalerts = EventWaitHandle.OpenExisting(evname, EventWaitHandleRights.ReadPermissions | EventWaitHandleRights.ChangePermissions); evsec = evalerts.GetAccessControl(); evrule = new EventWaitHandleAccessRule(user, EventWaitHandleRights.Synchronize | EventWaitHandleRights.Modify, AccessControlType.Deny); evsec.RemoveAccessRule(evrule); evrule = new EventWaitHandleAccessRule(user, EventWaitHandleRights.Synchronize | EventWaitHandleRights.Modify, AccessControlType.Allow); evsec.AddAccessRule(evrule); evalerts.SetAccessControl(evsec); evalerts = EventWaitHandle.OpenExisting(evname); thread = new Thread(alertUpdater); thread.Name = "XenClient Alert Thread"; thread.IsBackground = true; thread.Start(); }
static void Main() { bool ok; // Only allow one instance of the switcher to start exclusiveAppMtx = new System.Threading.Mutex(true, "{D39FAB11-ED23-478d-AF57-C638F79A7BA8}", out ok); if (!ok) { return; } log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(Assembly.GetExecutingAssembly().Location + ".config")); log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); log.Info("Application Started"); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; Application.ThreadException += Application_ThreadException; Application.ApplicationExit += Application_ApplicationExit; monitor.RegChanged += new EventHandler(OnRegChanged); monitor.Error += new System.IO.ErrorEventHandler(OnRegMonError); try { log.Info("Starting plugin..."); //Populate notifications from XML file _assembly = Assembly.GetExecutingAssembly(); alertReader = new StreamReader(_assembly.GetManifestResourceStream(Resources.ResourceManager.GetString("strings.xml"))); XmlSerializer deserializer = new XmlSerializer(typeof(List<Alert>)); TextReader textReader = alertReader; alertList = (List<Alert>)deserializer.Deserialize(textReader); textReader.Close(); } catch (Exception ex) { log.Error(ex.ToString()); MessageBox.Show(Resources.ResourceManager.GetString("Error loading")); } if (SetupPlugin()) { OnRegChanged(null, EventArgs.Empty); _systray = new TrayIcon(); Application.Run(); } }