精華區beta EZsoft 關於我們 聯絡資訊
修改一下之前的 Script,主要是改變了快速鍵的操作方式,並增加 OSD 顯示, 感謝 gonia119 板友來信建議 :) AutoHotkey http://www.autohotkey.com/ 將以下 Script 存檔為 .ahk 用 AutoHotkey 執行,或是編譯成 .exe 單獨執行 ; -------------------------------------------------------------------- ; 《滑鼠設定快速鍵》 ; ; 【操作方式一】 ; ; Win + 滑鼠滾輪上滾 增加滑鼠速度 ; Win + 滑鼠滾輪下滾 減少滑鼠速度 ; Win + 滑鼠滾輪鍵 (中鍵) 啟用/停用滑鼠加速 ; ; 【操作方式二】 ; ; Win + NumpadAdd 增加滑鼠速度 ; Win + NumpadSub 減少滑鼠速度 ; Win + NumpadMult 啟用/停用滑鼠加速 ; -------------------------------------------------------------------- ; -------------------------------------------------------------------- ; OSD GUI ; -------------------------------------------------------------------- Gui, Color, 000000 Gui, +AlwaysOnTop -Caption +Disable +LastFound +ToolWindow WinSet, TransColor, 000000 Gui, Font, cAqua s24 bold, MS Sans Serif Gui, Add, Text, x0 y0 w240 vMouseSensitivityText Gui, Font, cLime Gui, Add, Text, y+0 w240 vMouseAccelerationText Return ; -------------------------------------------------------------------- ; OSD Subroutine ; -------------------------------------------------------------------- OSD: Gosub, OSD_Update SetTimer, OSD_Update, 100 Gui, Show, AutoSize Center NoActivate SetTimer, OSD_Off, 2000 Return OSD_Update: Gui, +AlwaysOnTop MouseSensitivity := GetMouseSensitivity() MouseAcceleration := GetMouseAcceleration() If MouseAcceleration = 0 0 0 Gui, Font, cRed Else Gui, Font, cLime GuiControl, Font, MouseAccelerationText GuiControl,, MouseSensitivityText, 滑鼠速度`t%MouseSensitivity% GuiControl,, MouseAccelerationText, 滑鼠加速`t%MouseAcceleration% Return OSD_Off: Gui, Hide Return ; -------------------------------------------------------------------- ; Hotkey Configuration ; -------------------------------------------------------------------- #WheelUp:: #NumpadAdd::AddMouseSensitivity() #WheelDown:: #NumpadSub::SubMouseSensitivity() #MButton:: #NumpadMult::ToggleMouseAcceleration() ; -------------------------------------------------------------------- ; Mouse Sensitivity Function ; -------------------------------------------------------------------- GetMouseSensitivity() { DllCall("SystemParametersInfo", UInt, 0x70, UInt, 0 , UIntP, MouseSensitivity, UInt, 0) Return, MouseSensitivity } SetMouseSensitivity(MouseSensitivity) { DllCall("SystemParametersInfo", UInt, 0x71, UInt, 0 , UInt, MouseSensitivity, UInt, 1) } AddMouseSensitivity() { If (MouseSensitivity := GetMouseSensitivity()) < 20 SetMouseSensitivity(++MouseSensitivity) Gosub, OSD } SubMouseSensitivity() { If (MouseSensitivity := GetMouseSensitivity()) > 1 SetMouseSensitivity(--MouseSensitivity) Gosub, OSD } ; -------------------------------------------------------------------- ; Mouse Acceleration Function ; -------------------------------------------------------------------- GetMouseAcceleration() { VarSetCapacity(MouseAcceleration, 12, 0) DllCall("SystemParametersInfo", UInt, 3, UInt, 0 , UInt, &MouseAcceleration, UInt, 0) MouseThreshold1 := NumGet(MouseAcceleration, 0) MouseThreshold2 := NumGet(MouseAcceleration, 4) MouseSpeed := NumGet(MouseAcceleration, 8) Return, % MouseSpeed . " " . MouseThreshold1 . " " . MouseThreshold2 } SetMouseAcceleration(MouseSpeed, MouseThreshold1, MouseThreshold2) { VarSetCapacity(MouseAcceleration, 12, 0) NumPut(MouseThreshold1, MouseAcceleration, 0) NumPut(MouseThreshold2, MouseAcceleration, 4) NumPut(MouseSpeed, MouseAcceleration, 8) DllCall("SystemParametersInfo", UInt, 4, UInt, 0 , UInt, &MouseAcceleration, UInt, 1) } ToggleMouseAcceleration() { If GetMouseAcceleration() = "0 0 0" SetMouseAcceleration(1, 6, 10) Else SetMouseAcceleration(0, 0, 0) Gosub, OSD } ------------- 補 ------ 充 ------ 分 ------ 隔 ------ 線 ------------- ■ 誰適合用 需要頻繁切換滑鼠設定的使用者,如美工繪圖人員、電腦遊戲玩家等等 ■ 備註 1. 這個 Script 在某些滑鼠廠商的驅動程式下不一定能動作,如果控制台可以 調整相關設定,不需要進入滑鼠驅動程式的專屬介面的話,通常就可以使用 2. 有些應用軟體或遊戲會阻擋 AutoHotkey/AutoIt/EZScript 等快速鍵工具, 這個 Script 可能無法在這些軟體或遊戲上運作 3. OSD 在全螢幕模式下可能會閃爍或無法顯示 若有其它問題,歡迎指教 :) 本著作係採用 Creative Commons 姓名標示-非商業性-相同方式分享 台灣 授權條款授權 http://creativecommons.org/licenses/by-nc-sa/2.5/tw/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.248.159.124
ileadu:應該轉到EZScript去吧? 06/30 11:38
gonia119:感謝,太強大了... 06/30 12:12
UndeadSion:給一樓,不妨當作是免費軟體釋出,只不過程式碼不長, 06/30 19:20
UndeadSion:又可以用 AutoHotkey 直接執行,就沒編譯成執行檔囉 :) 06/30 19:20
UndeadSion:嗯……我再補充一些說明好了 06/30 19:23
※ 編輯: UndeadSion 來自: 60.248.159.124 (06/30 19:26)
abljy:大大有沒有考慮來個64bit OS版的XD 06/30 23:52
UndeadSion:這得 AutoHotkey 先支援 64-bit 編譯模式再說 :p 07/01 01:03