public bool SetCallback(string name, EnumCallback type, Action <object, EventArgs> callback) { var control = Ui.GetItem(name); if (control != null) { switch (type) { case EnumCallback.ON_GAIN_FOCUS: control.OnGainFocus += new EventHandler <EventArgs>(callback); break; case EnumCallback.ON_LOST_FOCUS: control.OnLostFocus += new EventHandler <EventArgs>(callback); break; case EnumCallback.ON_HOVER_START: control.OnHoverStart += new EventHandler <EventArgs>(callback); break; case EnumCallback.ON_HOVER_END: control.OnHoverEnd += new EventHandler <EventArgs>(callback); break; case EnumCallback.ON_VALUE_CHANGE: control.OnValueChange += new EventHandler <EventArgs>(callback); break; } return(true); } return(false); }
/// <summary> /// Enumerates all windows synchronously and applies the given callback /// until it returns false or the end is reached. /// </summary> /// <param name="callback">The callback to apply to each window.</param> public static void ForEach(EnumCallback callback) { EnumWindows((hWnd, lParam) => { if (!IsWindow(hWnd)) { // skip this return(true); } return(callback(new WindowInfo(hWnd))); }, IntPtr.Zero); }
public static Monitor[] GetMonitors() { List <Monitor> _monitors = new List <Monitor>(); EnumCallback _callback = (IntPtr hMonitor, IntPtr hdc, ref RECT pRect, int dwData) => { _monitors.Add(GetMonitor(hMonitor)); return(true); }; NativeMethods.EnumDisplayMonitors(IntPtr.Zero, IntPtr.Zero, _callback, 0); return(_monitors.OrderByDescending(m => m.IsPrimary).ToArray()); }
public static extern bool EnumWindows(EnumCallback lpEnumFunc, IntPtr lParam);
public static extern int EnumDesktopWindows(IntPtr hdesktop, EnumCallback cb, ref object param);