使用CHAT-GPT4使用AUTOHOTKEY V2 每秒檢測記憶體中LyStkHH.exe程式CPASLOCK是否被按下,如開啟把它關閉對於AutoHotkey V2,我們需要使用適當的方式來獲取正在運行的進程列表。以下是修改後的腳本,使用 DllCall 來檢測指定的進程是否在運行,並在每秒檢測Caps Lock狀態,如果開啟則關閉:ahk複製程式碼#Requires AutoHotkey v2.0; 定義檢測並關閉 Caps Lock 狀態的函數CheckAndTurnOffCapsLockInProcess() {ProcessName := "LyStkHH.exe"if IsProcessRunning(ProcessName) {if GetKeyState("CapsLock", "T") {; 如果 Caps Lock 是開啟的,則將其關閉SetCapsLockState("Off")ToolTip("Caps Lock was ON and now it's OFF", 0, 0, 1)SetTimer ClearToolTip, -1000 ; 1秒後清除ToolTip}}}; 檢測指定進程是否在運行的函數IsProcessRunning(ProcessName) {ProcessList := ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process where Name='" ProcessName "'")return (ProcessList.Count > 0)}; 清除 ToolTip 的函數ClearToolTip() {ToolTip()}; 每1秒執行一次 CheckAndTurnOffCapsLockInProcess 函數SetTimer CheckAndTurnOffCapsLockInProcess, 1000這段代碼做了以下幾件事:定義了一個函數 CheckAndTurnOffCapsLockInProcess(),這個函數檢測記憶體中是否有名為 "LyStkHH.exe" 的進程在運行,如果有,則檢測其 Caps Lock 狀態。使用 IsProcessRunning(ProcessName) 函數檢測指定進程是否在運行。這個函數使用 ComObjGet("winmgmts:").ExecQuery 來檢索進程列表,並檢查是否有與指定名稱匹配的進程。如果指定的進程在運行,使用 GetKeyState("CapsLock", "T") 檢測 Caps Lock 的狀態。如果 Caps Lock 被按下,返回值為真,否則為假。如果 Caps Lock 是開啟的,使用 SetCapsLockState("Off") 將其關閉,並顯示一個 ToolTip 告知狀態變更。定義了一個 ClearToolTip() 函數來清除 ToolTip,並設置計時器在1秒後執行此函數。使用 SetTimer CheckAndTurnOffCapsLockInProcess, 1000 設置一個計時器,每1秒執行一次 CheckAndTurnOffCapsLockInProcess() 函數。保存並運行這個腳本後,它會每1秒檢測一次是否有 LyStkHH.exe 進程在運行。如果有,並且 Caps Lock 是開啟的,會自動將其關閉並顯示相應訊息。目前轉成exe執行都正常。