ウィンドウ内からのマウスクリックに視覚効果をどのように追加しますか?


22

マウスクリックを監視して、スクリーンキャストで見られるような視覚的なバブル効果(または同様の現象)が発生するように、ちょっとしたユーティリティが欲しいだけです。

回答:


21

ネイティブWindowsオプション

マウスのプロパティ>ポインタオプション>ポインタの位置を表示

AutoHotkeyとの組み合わせ

~LButton::
Send {Ctrl}
return

~LButton UP::
Send {Ctrl}
return

マウスをクリック(上下)するたびに、Ctrl短い間隔で起動します。

Paoloが指摘したように、スクリプトの一部としてマウスの設定を変更することもできます。

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/...
パオロFulgoni

私が行った変更は、〜LButtonを削除して〜LButton Upのみを使用することでした。これは、両方がバラバラのソナーエフェクトを作成しますが、アップクリックのみを使用すると完璧に機能するためです。
裁判官

1

これは、Paolo Fulgoniからの変更を取り入れた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、ダブルクリック中の迷惑なポップアップメッセージを避けるために行を追加しました。
フィルB
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.