public IntPtr SendMessage(UInt32 msg, IntPtr wParam, IntPtr lParam) { IntPtr hwnd = Handle; if (hwnd != IntPtr.Zero) { return(Win32Helpers.SendMessage(hwnd, msg, wParam, lParam)); } else { return(IntPtr.Zero); } }
public bool PostMessage(UInt32 msg, IntPtr wParam, IntPtr lParam) { IntPtr hwnd = Handle; if (hwnd != IntPtr.Zero) { return(Win32Helpers.PostMessage(hwnd, msg, wParam, lParam)); } else { return(false); } }
public List <Window> FindAllWindows(IntPtr handler = default(IntPtr)) { List <IntPtr> hwnds = new List <IntPtr>(); IntPtr mainWindowHwnd; if (handler == IntPtr.Zero) { System.Threading.Thread.Sleep(200); mainWindowHwnd = _process.MainWindowHandle; } else { mainWindowHwnd = handler; } hwnds.Add(mainWindowHwnd); hwnds.AddRange(_process.GetAllWindows()); List <Window> allChildWindows = new List <Window>(); var menu = new Menu(IntPtr.Zero, Win32Helpers.GetMenu(mainWindowHwnd), mainWindowHandle: mainWindowHwnd); foreach (var childWindow in allChildWindows.ToList()) { allChildWindows.AddRange(childWindow.FindAllWindows()); } allChildWindows.OrderBy(w => (int)w.Handler); allChildWindows.RemoveAll(w => string.IsNullOrEmpty(w.Text)); foreach (var window in allChildWindows) { Console.WriteLine(window.Text); } return(allChildWindows); }
public bool PostThreadMessage(UInt32 msg, IntPtr wParam, IntPtr lParam, bool ensureTargetThreadHasWindow = true) { uint targetThreadId = 0; IntPtr hwnd = Handle; if (ensureTargetThreadHasWindow) { uint processId = 0; if (hwnd != IntPtr.Zero) { targetThreadId = Win32Helpers.GetWindowThreadProcessId(hwnd, out processId); } } if (targetThreadId != 0) { return(Win32Helpers.PostThreadMessage(targetThreadId, msg, wParam, lParam)); } else { return(false); } }