Як додати візуальний ефект до клацання миші зсередини Windows?


22

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

Відповіді:


21

Рідний варіант Windows

Властивості миші> Параметри вказівника> Показати розташування вказівника

У поєднанні з AutoHotkey

~LButton::
Send {Ctrl}
return

~LButton UP::
Send {Ctrl}
return

Кожне натискання миші (вниз і вгору) Ctrlкороткочасно спрацьовує .

Як зазначив Паоло, ви навіть можете змінити налаштування Миші як частину сценарію:

DllCall("SystemParametersInfo", UInt, 0x101D, UInt, 0, UInt, 1, UInt, 0) ;SPI_SETMOUSESONAR ON

OnExit, ExitSub
ExitSub:
   DllCall("SystemParametersInfo", UInt, 0x101D, UInt, 0, UInt, 0, UInt, 0) ;SPI_SETMOUSESONAR OFF
   ExitApp

1
Я виправив цю пропозицію тут (і дякую, що поставили мене на AutoHotKey). На вирішення виправлення знадобилися години. Я додав єдиний символ (тильду ~), який дозволив нормальній роботі миші пройти. Я також змінив приклад таким чином, що не тільки випуск миші, але й натискання миші створює ефект.

1
Можлива автоматична зміна налаштувань миші. Перейдіть за цим посиланням: autohotkey.com/board/topic/…
Паоло Фулгоні

Зміни, які я вніс, полягали в тому, щоб видалити ~ LButton і використовувати лише ~ LButton Up, оскільки наявність обох створює невмирущий ефект сонару, але використання лише клацання вгору робить його ідеальним.
Випробувач

1

Це варіант відповіді RJFalconer, який включає зміни Паоло Фулгоні. Я не хотів завжди бачити свою мишу, коли натискали кнопку CTRL, і сподівався, що DllInfoмодифікація буде динамічно включати та вимикати налаштування, але я не зміг змусити його працювати (сценарій просто вийшов). Без сумніву, хтось більш досконалий в AHK міг би пояснити, що я роблю неправильно, але я пішов вперед і створив свою власну версію.

Він динамічно перемикає опцію «Показати мишу при натисканні кнопки управління» при натисканні кнопки миші, а потім вимкне її. Це добре працює при обмеженому тестуванні, хоча іноді вказівник миші зникає вперед. Якщо хтось знає, як це виправити, чи має якісь інші вдосконалення, сміливо заходьте.

Це (надмірно) задокументоване, тому що я швидко забуваю речі, і коли мені потрібно переглянути, мені подобається, щоб мої сценарії надавали достатньо інформації, яку мені не потрібно шукати, щоб знайти в першу чергу всі старі посилання.

;Visualize mouse clicks by showing radiating concentric circles on mouse click
;Author: traycerb
;Date/Version: 01-31-2018
;
;Source:
;/superuser/106815/how-do-you-add-a-visual-effect-to-a-mouse-click-from-within-windows
;https://autohotkey.com/board/topic/77380-mouse-click-special-effects-for-presentationsdemos/

;Dynamically switch on the Windows accessibility feature to show the mouse when the control key is pressed
;when the script is executed, then switch off afterwards
;Windows settings > Mouse > Pointer Options tab > Visibility group > Show location of pointer when I press CTRL key



;Window's SystemParametersInfo function, retrieves or sets the value of one of the 
;system-wide parameters.  AHK DllCall fxn with SystemParameterInfo parameter is used to access
;this Windows API.
;https://msdn.microsoft.com/en-us/library/windows/desktop/ms724947(v=vs.85).aspx
;BOOL WINAPI SystemParametersInfo(
;  _In_    UINT  uiAction,
;  _In_    UINT  uiParam,
;  _Inout_ PVOID pvParam,
;  _In_    UINT  fWinIni
;);

;uiParam [in]
;Type: UINT
;
;A parameter whose usage and format depends on the system parameter being queried or set. 
;For more information about system-wide parameters, see the uiAction parameter. 
;If not otherwise indicated, you must specify zero for this parameter.

;pvParam [in, out]
;Type: PVOID
;
;A parameter whose usage and format depends on the system parameter being queried or set. 
;For more information about system-wide parameters, see the uiAction parameter. 
;If not otherwise indicated, you must specify NULL for this parameter. 
;For information on the PVOID datatype, see Windows Data Types.

;fWinIni [in]
;Type: UINT
;
;If a system parameter is being set, specifies whether the user profile is to be updated, 
;and if so, whether the WM_SETTINGCHANGE message is to be broadcast to all top-level 
;windows to notify them of the change.

;This parameter can be zero if you do not want to update the user profile 
;or broadcast the WM_SETTINGCHANGE message or it can be set to the following [...]

;Accessibility parameter    
;S0x101D PI_SETMOUSESONAR
;Turns the Sonar accessibility feature on or off. This feature briefly 
;shows several concentric circles around the mouse pointer when the user 
;presses and releases the CTRL key. 
;The pvParam parameter specifies TRUE for on and FALSE for off. 

;Press the control button each time mouse button is pressed, showing location of mouse pointer.
~LButton::
{
  DllCall("user32\SystemParametersInfo", UInt, 0x101D, UInt, 0, UInt, 1, UInt, 0) 
  Send {Ctrl}
  DllCall("user32\SystemParametersInfo", UInt, 0x101D, UInt, 0, UInt, 0, UInt, 0) 
  return
}

~RButton::
{
  DllCall("user32\SystemParametersInfo", UInt, 0x101D, UInt, 0, UInt, 1, UInt, 0) 
  Send {Ctrl}
  DllCall("user32\SystemParametersInfo", UInt, 0x101D, UInt, 0, UInt, 0, UInt, 0) 
  return
}

Це було корисно дякую. Я також додав #SingleInstance forceрядок, щоб уникнути дратівливого спливаючого повідомлення під час подвійних клацань.
Філ Б
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.