using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Media; using System.Runtime.InteropServices; namespace BuzzGUI.Common { public static class Win32Mouse { public static Point GetPosition(Visual relativeTo) { Win32Point w32Mouse = new Win32Point(); GetCursorPos(ref w32Mouse); return relativeTo.PointFromScreen(new Point(w32Mouse.X, w32Mouse.Y)); } public static Point GetScreenPosition() { Win32Point w32Mouse = new Win32Point(); GetCursorPos(ref w32Mouse); return new Point(w32Mouse.X, w32Mouse.Y); } [StructLayout(LayoutKind.Sequential)] internal struct Win32Point { public Int32 X; public Int32 Y; }; [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] internal static extern bool GetCursorPos(ref Win32Point pt); } }