Example #1
0
        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();
            }
        }
Example #2
0
        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();
        }
Example #3
0
        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();
        }
Example #4
0
        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();
            }
        }