Bagaimana Anda menambahkan efek visual ke klik mouse dari dalam windows?

22

Saya hanya ingin sedikit utilitas yang memonitor klik mouse sehingga ketika seseorang terjadi efek gelembung visual (atau sesuatu yang serupa) terjadi, mirip dengan sesuatu yang mungkin Anda lihat di screencast.

Jon Erickson
sumber

Jawaban:

21

Opsi Windows asli

Properti Mouse> Opsi Pointer> Tampilkan Lokasi Pointer

Dikombinasikan dengan AutoHotkey

~LButton::
Send {Ctrl}
return

~LButton UP::
Send {Ctrl}
return

Setiap klik mouse (turun & atas) menyala Ctrlsebentar.

Seperti yang ditunjukkan oleh Paolo, Anda bahkan dapat mengubah pengaturan Mouse sebagai bagian dari skrip:

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
RJFalconer
sumber
1
Saya telah memperbaiki saran di sini (dan terima kasih telah menempatkan saya di AutoHotKey). Butuh waktu berjam-jam untuk mencari solusinya. Saya menambahkan satu karakter (tilde ~) yang memungkinkan pengoperasian normal mouse untuk melewatinya. Saya juga telah memodifikasi contoh sehingga tidak hanya rilis klik mouse, tetapi juga klik mouse awal menghasilkan efek.
1
Dimungkinkan untuk secara otomatis mengubah pengaturan mouse. Lihat tautan ini: autohotkey.com/board/topic/…
Paolo Fulgoni
Perubahan yang saya lakukan adalah untuk menghapus ~ LButton dan hanya menggunakan ~ LButton Atas, karena memiliki keduanya menciptakan efek sonar terputus-putus, tetapi hanya menggunakan klik atas membuatnya bekerja sempurna.
Trialsman
1

Ini adalah varian dari jawaban RJFalconer, menggabungkan perubahan dari Paolo Fulgoni. Saya tidak ingin selalu melihat mouse saya ketika tombol CTRL ditekan, dan saya berharap DllInfomodifikasi akan secara dinamis mengaktifkan dan menonaktifkan pengaturan, tetapi saya tidak bisa membuatnya berfungsi (skrip akan keluar). Tidak diragukan lagi seseorang yang lebih canggih dalam AHK dapat menjelaskan apa yang saya lakukan salah, tetapi saya melanjutkan dan membuat versi saya sendiri.

Itu secara dinamis beralih opsi "Tampilkan mouse ketika kontrol ditekan" ON ketika tombol mouse ditekan, dan kemudian mematikannya setelah itu. Ini berfungsi dengan baik dalam pengujian terbatas, meskipun kadang-kadang pointer mouse menghilang setelah perang. Jika ada yang tahu cara memperbaikinya, atau memiliki perbaikan lain, jangan ragu untuk masuk.

Ini (secara berlebihan) didokumentasikan, karena saya dengan cepat melupakan hal-hal, dan ketika saya perlu mengunjungi kembali, saya ingin agar skrip saya memberikan informasi yang cukup sehingga saya tidak perlu mencari untuk menemukan semua referensi lama yang saya gunakan di tempat pertama.

;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
}
traycerb
sumber
Itu berguna terima kasih. Saya juga menambahkan #SingleInstance forcebaris untuk menghindari pesan popup yang mengganggu saat klik ganda.
Phil B