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); }
public long GetValue() { long fileTime = 0L; WinAPIHelper.GetSystemTimePreciseAsFileTime(out fileTime); return(DateTime.FromFileTime(fileTime).Ticks); }
public long GetValue() { long counter = 0L; WinAPIHelper.QueryPerformanceCounter(out counter); return((long)((double)counter * TickFrequency)); }
public void CreateMessage(string subject, string attachmentPath) { try { var handle = IntPtr.Zero; var processList = Process.GetProcesses(); foreach (var process in processList.Where(x => x.ProcessName.ToLower().Contains("outlook")).Where(process => process.MainWindowHandle.ToInt32() != 0)) { handle = process.MainWindowHandle; break; } Utilities.ActivateForm(handle, true, false); var mi = (MailItem)_outlookObject.CreateItem(OlItemType.olMailItem); mi.Attachments.Add(attachmentPath, OlAttachmentType.olByValue, 1, Path.GetFileNameWithoutExtension(attachmentPath)); mi.Subject = subject; mi.Display(false); var count = 100000; handle = IntPtr.Zero; while (handle == IntPtr.Zero && count > 0) { handle = WinAPIHelper.FindWindow(string.Empty, subject + "- Message (HTML)"); count--; System.Windows.Forms.Application.DoEvents(); } if (handle != IntPtr.Zero) { Utilities.ActivateForm(handle, true, false); } } catch (Exception e) { PopupMessageHelper.Instance.ShowWarning(e.Message); } }
public static void ReleaseGlobalSemaphore() { foreach (var p in AppHelper.GetAllProcessesButThis()) { WinAPIHelper.SendStringMessage(p.MainWindowHandle, "ReleaseSemaphore"); } _sem.Close(); }
public static void TakeGlobalSemaphore() { TakeSemaphore(); foreach (var p in AppHelper.GetAllProcessesButThis()) { WinAPIHelper.SendStringMessage(p.MainWindowHandle, "TakeSemaphore"); } }
protected override async Task DoAction(CancellationToken cancellationToken) { while (!cancellationToken.IsCancellationRequested) { await WinAPIHelper.PressKey(Config.CrouchKey, Config.Press); await Task.Delay(Config.Cooldown); } }
protected override async Task DoAction(CancellationToken cancellationToken) { while (!cancellationToken.IsCancellationRequested) { await WinAPIHelper.PressKey(Config.HookResistanceKey, 50); await Task.Delay(50); } }
private void OnCaptionMouseDown(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Left) { return; } WinAPIHelper.ReleaseCapture(); WinAPIHelper.SendMessage(Handle, WinAPIHelper.WM_NCLBUTTONDOWN, WinAPIHelper.HTCAPTION, IntPtr.Zero); }
public void StopWatching() { if (_checkProcess.IsBusy) { _checkProcess.CancelAsync(); } _checkTimer.Stop(); WinAPIHelper.UnhookWinEvent(_hook); }
static QPCBroker() { if (!WinAPIHelper.QueryPerformanceFrequency(out QPCBroker.Frequency)) { throw new NotSupportedException(); } TickFrequency = TicksPerSecond / (double)QPCBroker.Frequency; }
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); }
/// <summary> /// 单个粘贴 /// </summary> /// <param name="clip"></param> private void SinglePaste(ClipModel clip) { //设置剪切板前取消监听 WinAPIHelper.RemoveClipboardFormatListener(wpfHwnd); clipService.SetValueToClipboard(clip); //Thread.Sleep(100); SendPasteKey(); //设置剪切板后恢复监听 WinAPIHelper.AddClipboardFormatListener(wpfHwnd); }
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { webView1?.Dispose(); if (wpfHwnd == IntPtr.Zero) { WinAPIHelper.RemoveClipboardFormatListener(wpfHwnd); HotKeyManager.UnregisterHotKey(wpfHwnd, hotkeyAtom); HotKeyManager.GlobalDeleteAtom(hotkeyAtomStr); } }
/// <summary> /// 添加剪切板监听, 更改窗体属性,不在alt+tab中显示 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Window_SourceInitialized(object sender, EventArgs e) { HwndSource source = PresentationSource.FromVisual(this) as HwndSource; source.AddHook(WndProc); wpfHwnd = new WindowInteropHelper(this).Handle; WinAPIHelper.AddClipboardFormatListener(wpfHwnd); int exStyle = (int)WinAPIHelper.GetWindowLong(wpfHwnd, -20); exStyle |= 0x00000080; WinAPIHelper.SetWindowLong(wpfHwnd, -20, exStyle); }
public void WriteTextBox() { string txt = "Hello Hook!"; //获得窗体句柄 IntPtr winHwnd = WinAPIHelper.FindWindow("WindowsForms10.Window.8.app.0.378734a", "MyWindow"); //获得窗体上TextBox句柄 IntPtr txtHwnd = WinAPIHelper.FindWindowEx(winHwnd, IntPtr.Zero, "WindowsForms10.EDIT.app.0.378734a", ""); //向TextBox中写入内容 WinAPIHelper.BringWindowToTop(winHwnd); IntPtr result = WinAPIHelper.SendMessage(txtHwnd, 0x000C, (IntPtr)txt.Length, txt); IntPtr result1 = WinAPIHelper.SendMessage(txtHwnd, 0x000C, (IntPtr)0, txt); }
public static void UpdateGlobalSettings() { foreach (var p in AppHelper.GetAllProcessesButThis()) { WinAPIHelper.SendStringMessage(p.MainWindowHandle, "UpdateSettings"); } if (_sem.Count != Setting.CopyCount) { ReleaseGlobalSemaphore(); TakeGlobalSemaphore(); } }
public void LoadRateCards() { RateCardFolders.Clear(); if (!_rootFolder.ExistsLocal()) { return; } var rateCatdFolders = _rootFolder.GetLocalFolders().ToList(); rateCatdFolders.Sort((x, y) => WinAPIHelper.StrCmpLogicalW(x.Name, y.Name)); foreach (var rateCardFolder in rateCatdFolders.Select(rateCardFolder => new RateCardFolder(rateCardFolder))) { RateCardFolders.Add(rateCardFolder); } }
public void Disconnect() { if (ExcelObject != null) { foreach (Workbook workbook in ExcelObject.Workbooks) { workbook.Close(); } uint processId; WinAPIHelper.GetWindowThreadProcessId(new IntPtr(ExcelObject.Hwnd), out processId); Process.GetProcessById((int)processId).Kill(); } Utilities.ReleaseComObject(ExcelObject); GC.Collect(); }
private void OnMemoEditEditValueChanging(object sender, ChangingEventArgs e) { textBox.Text = e.NewValue?.ToString() ?? string.Empty; if (!_allowToSave) { return; } var linesCount = WinAPIHelper.SendMessage(textBox.Handle, 0x00BA, IntPtr.Zero, IntPtr.Zero); if (linesCount <= 2) { return; } textBox.Text = e.OldValue?.ToString() ?? string.Empty; e.Cancel = true; }
public static Cursor CreateCursor(Bitmap bmp, Point hotspot) { if (bmp == null) { return(Cursors.Default); } var ptr = bmp.GetHicon(); var tmp = new IconInfo(); WinAPIHelper.GetIconInfo(ptr, ref tmp); tmp.IsIcon = false; tmp.xHotspot = hotspot.X; tmp.yHotspot = hotspot.Y; ptr = WinAPIHelper.CreateIconIndirect(ref tmp); return(ptr == IntPtr.Zero ? Cursors.Default : new Cursor(ptr)); }
private void OnButtonMouseMove(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Left) { return; } if (_dragStartRectangle.IsEmpty) { return; } if (!_dragStartRectangle.Contains(e.Location)) { WinAPIHelper.ReleaseCapture(); WinAPIHelper.SendMessage(Handle, WinAPIHelper.WM_NCLBUTTONDOWN, WinAPIHelper.HTCAPTION, IntPtr.Zero); } }
private static void TakeSemaphorFailed() { var procs = AppHelper.GetAllProcessesButThis(); var count = procs.Length; switch (count) { case 1: MessageBox.Show("Application is already launched", "Info"); WinAPIHelper.ShowWindow(procs[0].MainWindowHandle, ShowWindowCommands.Normal); break; default: MessageBox.Show("Allowable limit of " + count + " copies exhausted", "Info"); break; } }
void FreeResources() { if (!m_Disposed) { if (m_Atom != 0) { WinAPIHelper.GlobalDeleteAtom(m_Atom); } //Se a classe implementa IDisposable: //base.Dispose(); GC.SuppressFinalize(this); m_Disposed = true; } }
private void OnTabControlMouseDown(object sender, MouseEventArgs e) { if (AppManager.Instance.Settings.UserSettings.UseDockedStyle) { return; } if (e.Button != MouseButtons.Left) { return; } if (e.Clicks > 1) { return; } WinAPIHelper.ReleaseCapture(); WinAPIHelper.SendMessage(Handle, WinAPIHelper.WM_NCLBUTTONDOWN, WinAPIHelper.HTCAPTION, IntPtr.Zero); }
/// <summary> /// 批量粘贴,由于循环太快、发送粘贴按键消息太慢,故延时 /// </summary> /// <param name="needPause"></param> private void BatchPaste(List <ClipModel> clipList) { //设置剪切板前取消监听 WinAPIHelper.RemoveClipboardFormatListener(wpfHwnd); for (int i = 0; i < clipList.Count; i++) { ClipModel clip = clipList[i]; if (i != clipList.Count - 1 && !clip.ClipValue.Contains("\n")) { clip.ClipValue += "\n"; } clipService.SetValueToClipboard(clip); SendPasteKey(); Thread.Sleep(50); } //设置剪切板后恢复监听 WinAPIHelper.AddClipboardFormatListener(wpfHwnd); }
protected void Close() { try { _powerPointObject.Quit(); uint lpdwProcessId; WinAPIHelper.GetWindowThreadProcessId(WindowHandle, out lpdwProcessId); var powerPointProcessId = (int)lpdwProcessId; Process.GetProcessById(powerPointProcessId).CloseMainWindow(); } catch { } finally { try { Process.GetProcessesByName("POWERPNT").ToList().ForEach(p => p.Kill()); } catch { } } }
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); } }
private bool IsMaximized(Process p) { IntPtr handle; if (_processesAndMaximizedWindows.ContainsKey(p.Id)) { handle = _processesAndMaximizedWindows[p.Id]; } else { _processesAndMaximizedWindows.Add(p.Id, p.MainWindowHandle); handle = p.MainWindowHandle; } var placement = new WindowPlacement(); placement.length = Marshal.SizeOf(placement); if (WinAPIHelper.GetWindowPlacement(handle, ref placement)) { if (placement.showCmd == 3) // WM_MAXIMIZED { _processesAndMaximizedWindows[p.Id] = handle; return(true); } } else if (_processesAndMaximizedWindows[p.Id] != p.MainWindowHandle) { _processesAndMaximizedWindows[p.Id] = p.MainWindowHandle; return(IsMaximized(p)); } else { return(false); } // Error retrieving the Window placement return(false); }
private void changePCMModules(string moduleName) { var moduleList = XMLHelper.LoadPCMFlashModules(); foreach (var module in moduleList) { if (" " + module.Key == moduleName) { WinAPIHelper.SendMessage(pcmComboBoxModules, 0x014F /*CB_SHOWDROPDOWN*/, 1, ""); WinAPIHelper.SendMessage(pcmComboBoxModules, 0x014E /*CB_SETCURSEL*/, module.Value, ""); WinAPIHelper.SendMessage(pcmComboBoxModules, 0x0201 /*WM_LBUTTONDOWN*/, 0, "-1"); WinAPIHelper.SendMessage(pcmComboBoxModules, 0x0202 /*WM_LBUTTONUP*/, 0, "-1"); WinAPIHelper.SendMessage(pcmComboBoxModules, 0x014F /*CB_SHOWDROPDOWN*/, 0, "0"); WinAPIHelper.SendMessage(pcmComboBoxModules, WinAPIHelper.CB_SETCURSEL, module.Value, ""); return; } } WinAPIHelper.SendMessage(pcmComboBoxModules, 0x014F /*CB_SHOWDROPDOWN*/, 1, ""); WinAPIHelper.SendMessage(pcmComboBoxModules, 0x014E /*CB_SETCURSEL*/, 1, ""); WinAPIHelper.SendMessage(pcmComboBoxModules, 0x0201 /*WM_LBUTTONDOWN*/, 0, "-1"); WinAPIHelper.SendMessage(pcmComboBoxModules, 0x0202 /*WM_LBUTTONUP*/, 0, "-1"); WinAPIHelper.SendMessage(pcmComboBoxModules, 0x014F /*CB_SHOWDROPDOWN*/, 0, "0"); WinAPIHelper.SendMessage(pcmComboBoxModules, WinAPIHelper.CB_SETCURSEL, 1, ""); }