尝试控制点击时Ableton问题

时间:2017-09-10 19:57:13

标签: autohotkey

即使我已阅读文档并观看教程,但我是一个完全的初学者,所以我道歉如果这是一个愚蠢的问题。我已经尝试了很长一段时间没有结果。

我想让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

1 个答案:

答案 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
}