64 down vote If you don't want to reference Forms you can use interop to get the cursor position: /// /// Struct representing a point. /// [StructLayout(LayoutKind.Sequential)] public struct POINT { public int X; public int Y; public static implicit operator Point(POINT point) { return new Point(point.X, point.Y); } } /// /// Retrieves the cursor's position, in screen coordinates. /// /// See MSDN documentation for further information. [DllImport("user32.dll")] public static extern bool GetCursorPos(out POINT lpPoint); public static Point GetCursorPosition() { POINT lpPoint; GetCursorPos(out lpPoint); //bool success = User32.GetCursorPos(out lpPoint); // if (!success) return lpPoint; }