public MainWindowController() { InitializeComponent(); instance = this; startHook.KeyPressed += this.hookStartKeyPressed; showHook.KeyPressed += this.hookShowKeyPressed; }
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); } }
public MainWindowController() { InitializeComponent(); instance = this; }
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); } }
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); } }