用於將熱鍵傳送到特定視窗的 AHK 腳本

用於將熱鍵傳送到特定視窗的 AHK 腳本

我需要一個 ahk 腳本來發送 3 個不同的熱鍵(例如按 f1,將 f5 發送到特定(撲克)應用程式的活動視窗),但對於並行運行的其他應用程序,f1 必須是 f1

誰可以幫忙?

答案1

如果您的撲克應用程式的標題始終以 結尾- NLH,但您不想匹配那些類別為 的窗口PokerStarsTableFrameClass,請使用以下命令:

F1::
WinGetTitle, Title, A
WinGetClass, Class, A
if (RegExMatch(Title, "- NLH$") AND (Class != "PokerStarsTableFrameClass"))
    SendPlay {F5}
else
    SendPlay {F1}
return

怎麼運作的

  • WinGet(Title|Class), (Title|Class), A讀取活動 ( A) 視窗的 title|class 並將其儲存在變數 中Title|Class

  • - NLH$是一個正規表示式符合所有以 結尾的字串- NLH。 ($是字串的結尾)

  • if (RegExMatch(Title, "- NLH$") AND (Class != "PokerStarsTableFrameClass"))測試正規表示式是否匹配TitleClass與例外不同。

    • 如果是,SendPlay {F5}則傳送F5到活動視窗。

    • 否則,SendPlay {F1}將法線傳送F1到活動視窗。

答案2

您不需要 AutoHotkey 腳本。您需要學習如何使用可用的 API(命令)來實現您想要的目的。若要將輸入直接傳送至視窗或其控制項(無論是否已活動),您可以使用控制發送命令。

相關內容