即使我已阅读文档并观看教程,但我是一个完全的初学者,所以我道歉如果这是一个愚蠢的问题。我已经尝试了很长一段时间没有结果。
我想让NUMPAD0键按下Ableton Live中的全局录制按钮,但我不想通过鼠标坐标来做(1。因为当我需要录制时窗口可能会被最小化2.因为我想要将来实现这一点,以便能够在创建时按下单个轨道上的录制按钮,例如,可能会有1到80个新轨道。
问题是Windows类会动态更改,并且控制ID不会显示在winspy中。
这就是我一直在做的事情:
GroupAdd, Live, ahk_class
Afx:0000000140000000:0:0000000000000000:0000000000900015:00000000007A04C3
GroupAdd, Live, ahk_class
Afx:0000000140000000:0:0000000000000000:0000000000900015:0000000000200651
GroupAdd, Live, ahk_class
Afx:0000000140000000:0:0000000000000000:0000000000900015:0000000000290651
GroupAdd, Live, ahk_class
Afx:0000000140000000:0:0000000000000000:0000000000900015:00000000001E05F1
curMode := 1
return
Numpad0::
SetControlDelay -1
controlclick, ahk_group Live0,,,,,NA
return
所以,我的问题是这些:1。在GroupAdd命令中,我已经放置了我已经看过的窗口类,但我相信每次打开一个新的Ableton窗口时都会出现更多的类。 2.在Control Click命令中,我没有输入控件ID,因为我无法找到它。
有关如何完成此代码或将其更改为其他代码的任何建议,以便在Ableton中按下“录制”按钮而不使用坐标?
编辑: 这是我现在尝试的代码,遵循建议,但我还没有得到任何结果:
SetTitleMatchMode, Regex
SetTitleMatchMode, Slow
#IfWinActive, .*als
Numpad0::F9
#IfWinActive
return
这是其中的两个版本,无法正常使用
SetTitleMatchMode, Regex
SetTitleMatchMode, Slow
#IfWinActive, Afx:0000000140000000
Numpad0::F9
#IfWinActive
return
答案 0 :(得分:0)
虽然我从未使用过GroupAdd
,但如果有类数量有限的类排列,我觉得你可以RegExMatch
对付那些,然后在那里形成你的小组。 GroupAdd
规范似乎使所有参数都超出了GroupName的可选参数,所以也许你可以在确认你有正确的窗口之后跳过Class声明。
示例:强>
WinGetTitle, Title, A
WinGetClass, Class, A
if (RegExMatch(Title, "Ableton Live.*") AND (RegExMatch(Class, "(AbletonClass1|AbletonClass2|AbletonClass3)")))
{
; Do stuff
}