Как скрыть курсор мыши для всех окон на С#?C#

Место общения программистов C#
Anonymous
Как скрыть курсор мыши для всех окон на С#?

Сообщение Anonymous »


TLDR: Как программно скрыть курсор мыши для всего рабочего стола независимо от того, какое приложение находится в фокусе?

Хотя в параметрах мыши Windows включен параметр «Скрывать указатель при вводе», он не работает для большинства окон. Кажется, это работает только в окнах, которые используют стандартный элемент управления текстовым полем Windows (например, notepad.exe). В остальных случаях курсор остается прямо над тем, что я печатаю.

Я хочу программно скрыть курсор мыши по всему рабочему столу независимо от того, какое приложение находится в фокусе, когда я выполняю определенное действие (например, нажимаю горячую клавишу). Затем, когда мышь перемещается, я хочу, чтобы курсор появлялся снова.

Я умею пользоваться горячими клавишами и т. д. Мне просто нужно знать, как скрыть курсор.

Что я пробовал:
[*]
Метод Cursor.Hide скрывает курсор только для текущей формы. Это неприемлемое решение.
[*]
Функция Windows API ShowCursor - похоже, вообще не работает... курсор никогда не исчезает.

В настоящее время мой обходной путь заключается в том, чтобы прослушать нажатие клавиши пробела (подразумевается, что я набираю больше нескольких символов), а затем переместить курсор мыши в верхний угол рабочего стола, в сторону. Однако это не идеальное решение, поскольку для возврата в исходное положение требуется много перемещать мышь, а также искажать положение мыши в таких приложениях, как Sketchup, при вводе размеров, содержащих пробелы. Я бы предпочел, чтобы курсор просто становился невидимым в своем текущем местоположении, а затем снова появлялся в том же месте при перемещении мыши, поскольку предполагается работать с опцией «Скрыть указатель при вводе». Я не привязан к C#, но его легко скомпилировать в исполняемый файл для Windows, который я могу запускать при запуске Windows.

Спасибо за любую помощь!

Вернуться в «C#»