Как скрыть курсор мыши для всех окон на С#? ⇐ C#
-
Anonymous
Как скрыть курсор мыши для всех окон на С#?
TLDR: Как программно скрыть курсор мыши для всего рабочего стола независимо от того, какое приложение находится в фокусе?
Хотя в параметрах мыши Windows включен параметр «Скрывать указатель при вводе», он не работает для большинства окон. Кажется, это работает только в окнах, которые используют стандартный элемент управления текстовым полем Windows (например, notepad.exe). В остальных случаях курсор остается прямо над тем, что я печатаю.
Я хочу программно скрыть курсор мыши по всему рабочему столу независимо от того, какое приложение находится в фокусе, когда я выполняю определенное действие (например, нажимаю горячую клавишу). Затем, когда мышь перемещается, я хочу, чтобы курсор появлялся снова.
Я умею пользоваться горячими клавишами и т. д. Мне просто нужно знать, как скрыть курсор.
Что я пробовал:
[*]
Метод Cursor.Hide скрывает курсор только для текущей формы. Это неприемлемое решение.
[*]
Функция Windows API ShowCursor - похоже, вообще не работает... курсор никогда не исчезает.
В настоящее время мой обходной путь заключается в том, чтобы прослушать нажатие клавиши пробела (подразумевается, что я набираю больше нескольких символов), а затем переместить курсор мыши в верхний угол рабочего стола, в сторону. Однако это не идеальное решение, поскольку для возврата в исходное положение требуется много перемещать мышь, а также искажать положение мыши в таких приложениях, как Sketchup, при вводе размеров, содержащих пробелы. Я бы предпочел, чтобы курсор просто становился невидимым в своем текущем местоположении, а затем снова появлялся в том же месте при перемещении мыши, поскольку предполагается работать с опцией «Скрыть указатель при вводе». Я не привязан к C#, но его легко скомпилировать в исполняемый файл для Windows, который я могу запускать при запуске Windows.
Спасибо за любую помощь!
TLDR: Как программно скрыть курсор мыши для всего рабочего стола независимо от того, какое приложение находится в фокусе?
Хотя в параметрах мыши Windows включен параметр «Скрывать указатель при вводе», он не работает для большинства окон. Кажется, это работает только в окнах, которые используют стандартный элемент управления текстовым полем Windows (например, notepad.exe). В остальных случаях курсор остается прямо над тем, что я печатаю.
Я хочу программно скрыть курсор мыши по всему рабочему столу независимо от того, какое приложение находится в фокусе, когда я выполняю определенное действие (например, нажимаю горячую клавишу). Затем, когда мышь перемещается, я хочу, чтобы курсор появлялся снова.
Я умею пользоваться горячими клавишами и т. д. Мне просто нужно знать, как скрыть курсор.
Что я пробовал:
[*]
Метод Cursor.Hide скрывает курсор только для текущей формы. Это неприемлемое решение.
[*]
Функция Windows API ShowCursor - похоже, вообще не работает... курсор никогда не исчезает.
В настоящее время мой обходной путь заключается в том, чтобы прослушать нажатие клавиши пробела (подразумевается, что я набираю больше нескольких символов), а затем переместить курсор мыши в верхний угол рабочего стола, в сторону. Однако это не идеальное решение, поскольку для возврата в исходное положение требуется много перемещать мышь, а также искажать положение мыши в таких приложениях, как Sketchup, при вводе размеров, содержащих пробелы. Я бы предпочел, чтобы курсор просто становился невидимым в своем текущем местоположении, а затем снова появлялся в том же месте при перемещении мыши, поскольку предполагается работать с опцией «Скрыть указатель при вводе». Я не привязан к C#, но его легко скомпилировать в исполняемый файл для Windows, который я могу запускать при запуске Windows.
Спасибо за любую помощь!
Мобильная версия