用于将热键发送到特定窗口的 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

  • - NLH$正则表达式匹配所有以 . 结尾的字符串- NLH$是字符串的结尾)

  • if (RegExMatch(Title, "- NLH$") AND (Class != "PokerStarsTableFrameClass"))测试正则表达式是否匹配TitleClass异常 不同。

    • 如果是,SendPlay {F5}则发送F5到活动窗口。

    • 否则,向活动窗口SendPlay {F1}发送法线。F1

答案2

您不需要 AutoHotkey 脚本。您需要学习如何使用可用的 API(命令)来实现您想要的功能。要将输入直接发送到窗口或其控件(无论是否处于活动状态),您可以使用控制发送命令。

相关内容