コード例 #1
0
        public MainWindowController()
        {
            InitializeComponent();

            instance = this;

            startHook.KeyPressed += this.hookStartKeyPressed;

            showHook.KeyPressed += this.hookShowKeyPressed;
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: ticobro/toggldesktop
        static void Main()
        {
            Win32.AttachConsole(Win32.ATTACH_PARENT_PROCESS);

            using (Mutex mutex = new Mutex(false, "Global\\" + Environment.UserName + "_" + appGUID))
            {
            if (!mutex.WaitOne(0, false))
            {
                // See if we get hold of the other process.
                // If we do, activate it's window and exit.
                Process current = Process.GetCurrentProcess();
                Process[] instances = Process.GetProcessesByName(current.ProcessName);
                foreach (Process p in instances)
                {
                    if (p.Id != current.Id)
                    {
                        // gotcha
                        IntPtr hWnd = p.MainWindowHandle;
                        if (hWnd == IntPtr.Zero)
                        {
                            hWnd = Win32.SearchForWindow(current.ProcessName, "Toggl Desktop");
                        }
                        Win32.ShowWindow(hWnd, Win32.SW_RESTORE);
                        Win32.SetForegroundWindow(hWnd);
                        return;
                    }
                }

                // If not, print an error message and exit.
                MessageBox.Show("Another copy of Toggl Desktop is already running." +
                                Environment.NewLine + "This copy will now quit.");
                return;
            }

            bugsnag = new Bugsnag.Clients.BaseClient("2a46aa1157256f759053289f2d687c2f");

            if (Properties.Settings.Default != null)
            {
                bugsnag.Config.ReleaseStage = Properties.Settings.Default.Environment;
            }

            Toggl.OnLogin += delegate(bool open, UInt64 user_id)
            {
                uid = user_id;
            };

            Toggl.OnError += delegate(string errmsg, bool user_error)
            {
                Console.WriteLine(errmsg);
                try
                {
                    if (!user_error && Properties.Settings.Default.Environment != "development")
                    {
                        notifyBugsnag(new Exception(errmsg));
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Could not check if can notify bugsnag: ", ex);
                }
            };

            Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
            AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            mainWindowController = new MainWindowController();
            Application.Run(mainWindowController);
            }
        }
コード例 #3
0
        public MainWindowController()
        {
            InitializeComponent();

            instance = this;
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: Hazer/toggldesktop
        static void Main()
        {
            AttachConsole(ATTACH_PARENT_PROCESS);

            using (Mutex mutex = new Mutex(false, "Global\\" + Environment.UserName + "_" + appGUID))
            {
                if (!mutex.WaitOne(0, false))
                {
                    // See if we get hold of the other process.
                    // If we do, activate it's window and exit.
                    Process   current   = Process.GetCurrentProcess();
                    Process[] instances = Process.GetProcessesByName(current.ProcessName);
                    foreach (Process p in instances)
                    {
                        if (p.Id != current.Id)
                        {
                            // gotcha
                            IntPtr hWnd = p.MainWindowHandle;
                            if (hWnd == IntPtr.Zero)
                            {
                                hWnd = SearchForWindow(current.ProcessName, "Toggl Desktop");
                            }
                            ShowWindow(hWnd, SW_RESTORE);
                            SetForegroundWindow(hWnd);
                            return;
                        }
                    }

                    // If not, print an error message and exit.
                    MessageBox.Show("Another copy of Toggl Desktop is already running." +
                                    Environment.NewLine + "This copy will now quit.");
                    return;
                }

                bugsnag = new Bugsnag.Library.BugSnag()
                {
                    apiKey             = "2a46aa1157256f759053289f2d687c2f",
                    OSVersion          = Environment.OSVersion.ToString(),
                    applicationVersion = Version()
                };

                Toggl.OnLogin += delegate(bool open, UInt64 user_id)
                {
                    uid = user_id;
                };

                Toggl.OnError += delegate(string errmsg, bool user_error)
                {
                    Console.WriteLine(errmsg);
                    try
                    {
                        if (!user_error && Properties.Settings.Default.Environment != "development")
                        {
                            notifyBugsnag(new Exception(errmsg));
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Could not check if can notify bugsnag: ", ex);
                    }
                };

                Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
                AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);

                mainWindowController = new MainWindowController();
                Application.Run(mainWindowController);
            }
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: rodrigos01/toggldesktop
        static void Main()
        {
            using (Mutex mutex = new Mutex(false, "Global\\" + appGUID))
            {
                if (!mutex.WaitOne(0, false))
                {
                    // See if we get hold of the other process.
                    // If we do, activate it's window and exit.
                    Process current = Process.GetCurrentProcess();
                    Process[] instances = Process.GetProcessesByName(current.ProcessName);
                    foreach (Process p in instances)
                    {
                        if (p.Id != current.Id)
                        {
                            // gotcha
                            IntPtr hWnd = p.MainWindowHandle;
                            if (hWnd == IntPtr.Zero)
                            {
                                hWnd = SearchForWindow(current.ProcessName, "Toggl Desktop");
                            }
                            ShowWindow(hWnd, SW_RESTORE);
                            SetForegroundWindow(hWnd);
                            return;
                        }
                    }

                    // If not, print an error message and exit.
                    MessageBox.Show("Another copy of Toggl Desktop is already running." +
                        Environment.NewLine + "This copy will now quit.");
                    return;
                }

                 if (Environment.OSVersion.Version.Major >= 6) SetProcessDPIAware();

                bugsnag = new Bugsnag.Library.BugSnag()
                {
                    apiKey = "2a46aa1157256f759053289f2d687c2f",
                    OSVersion = Environment.OSVersion.ToString()
                };

                Toggl.OnLogin += delegate(bool open, UInt64 user_id)
                {
                    uid = user_id;
                };

                Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
                AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);

                mainWindowController = new MainWindowController();
                Application.Run(mainWindowController);
            }
        }