public void ActivateApplication() { var mainFormHandle = IntPtr.Zero; foreach (var process in Process.GetProcesses().Where(x => x.ProcessName.Contains("SiteManager"))) { if (process.MainWindowHandle.ToInt32() == 0) { continue; } mainFormHandle = process.MainWindowHandle; break; } if (mainFormHandle.ToInt32() == 0) { return; } WinAPIHelper.ShowWindow(mainFormHandle, WindowShowStyle.ShowMaximized); WinAPIHelper.MakeTopMost(mainFormHandle); WinAPIHelper.MakeNormal(mainFormHandle); uint lpdwProcessId; WinAPIHelper.AttachThreadInput(WinAPIHelper.GetCurrentThreadId(), WinAPIHelper.GetWindowThreadProcessId(WinAPIHelper.GetForegroundWindow(), out lpdwProcessId), true); WinAPIHelper.SetForegroundWindow(mainFormHandle); WinAPIHelper.AttachThreadInput(WinAPIHelper.GetCurrentThreadId(), WinAPIHelper.GetWindowThreadProcessId(WinAPIHelper.GetForegroundWindow(), out lpdwProcessId), false); }
private void FormFileDescription_Shown(object sender, EventArgs e) { WinAPIHelper.ShowWindow(Handle, WindowShowStyle.ShowNormal); WinAPIHelper.MakeTopMost(Handle); WinAPIHelper.MakeNormal(Handle); uint lpdwProcessId; WinAPIHelper.AttachThreadInput(WinAPIHelper.GetCurrentThreadId(), WinAPIHelper.GetWindowThreadProcessId(WinAPIHelper.GetForegroundWindow(), out lpdwProcessId), true); WinAPIHelper.SetForegroundWindow(Handle); WinAPIHelper.AttachThreadInput(WinAPIHelper.GetCurrentThreadId(), WinAPIHelper.GetWindowThreadProcessId(WinAPIHelper.GetForegroundWindow(), out lpdwProcessId), false); }
protected override void OnStartup(StartupEventArgs e) { // Увеличение скорости запуска приложения Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.AboveNormal; // Если программа уже запущена, не нужно открывать ещё одну Process currentProcess = Process.GetCurrentProcess(); Process[] processes = Process.GetProcessesByName(currentProcess.ProcessName); if (processes.Length > 1) { foreach (var process in processes) { if (process.Id != currentProcess.Id) { WinAPIHelper.SetForegroundWindow(process.MainWindowHandle); } } Environment.Exit(0); } }