/// <summary> /// Gets the cursor pos. /// </summary> /// <returns>Point.</returns> public static Point GetCursorPos() { POINT pOINT = new POINT(); pOINT.x = 0; pOINT.y = 0; POINT pOINT1 = pOINT; Point point = new Point(); if (NativeMethods.GetCursorPos(ref pOINT1)) { point.X = (double)pOINT1.x; point.Y = (double)pOINT1.y; } return point; }
/// <summary> /// Finds the monitor rects from point. /// </summary> /// <param name="point">The point.</param> /// <param name="monitorRect">The monitor rect.</param> /// <param name="workAreaRect">The work area rect.</param> public static void FindMonitorRectsFromPoint(Point point, out Rect monitorRect, out Rect workAreaRect) { POINT pt = new POINT { x = (int)point.X, y = (int)point.Y }; IntPtr hMonitor = NativeMethodsPack.NativeMethods.MonitorFromPoint(pt, 2); monitorRect = new Rect(0.0, 0.0, 0.0, 0.0); workAreaRect = new Rect(0.0, 0.0, 0.0, 0.0); if (hMonitor != IntPtr.Zero) { MONITORINFO monitorInfo = new MONITORINFO { cbSize = (uint)Marshal.SizeOf(typeof(MONITORINFO)) }; NativeMethodsPack.NativeMethods.GetMonitorInfo(hMonitor, ref monitorInfo); monitorRect = new Rect(monitorInfo.rcMonitor.Position, monitorInfo.rcMonitor.Size); workAreaRect = new Rect(monitorInfo.rcWork.Position, monitorInfo.rcWork.Size); } }