Autohotkey 尝试控制单击时出现问题

Autohotkey 尝试控制单击时出现问题,autohotkey,Autohotkey,尽管我已经阅读了文档并观看了教程,但我是一个完全的初学者,所以如果这是一个愚蠢的问题,我道歉。我已经尝试了很长一段时间,但没有结果 我想让NUMPAD0键在Ableton Live中按下全局录制按钮,但我不想通过鼠标坐标来完成(1.因为当我需要录制时,窗口可能会最小化;2.因为我想在将来实现这一点,以便在创建单个曲目时,也能在单个曲目上按下录制按钮,例如,可能从1到80个新曲目) 问题是Windows类会动态更改,并且控件ID不会显示在winspy中 这就是我一直在做的: GroupAdd, L

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

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

虽然我从未使用过
GroupAdd
,但如果有有限数量的类排列,在我看来,您可以
RegExMatch
,然后在其中组成您的组。
GroupAdd
规范似乎使组名之外的所有参数都是可选的,因此在确认后,您可以跳过类声明我知道你找对了窗户

示例:

WinGetTitle, Title, A
WinGetClass, Class, A
if (RegExMatch(Title, "Ableton Live.*") AND (RegExMatch(Class, "(AbletonClass1|AbletonClass2|AbletonClass3)")))
{
    ; Do stuff
}

程序没有键盘快捷键吗(查看手册)或者是全局录制的菜单项,除了此按钮之外?您可以使用
SetTitleMatchMode、RegEx
,并且在ControlClick命令中仅使用窗口类的一部分。是的,它确实退出,但我希望在numpad中,因为我不仅要设置全局曲目,还要设置单个曲目,以便从numpad也是(ableton中没有默认热键)。这就是我现在所做的,至少让全局录制开始,但仍然没有结果。(我将ableton中默认录制热键F9替换为numpad0)。我已经编辑了我的问题以发布我现在正在做的代码!
\IfWinActive,ahk_class Afx:0000000 140000000
在这种情况下是正确的语法。还可以尝试Send或ControlSend命令。奇怪的是,控件ID或类NN也在动态变化,所以我不知道如何使用带有contin的控件ID的ControlSend逻辑变化。此外,Ahk_类和NN类(我读取的内容应放在control send中的控制参数下)有几乎相同的数字,因此也很难从类NN中识别wintitle,因为这一点。我将尝试其他一些方法,如果没有任何效果,我将寻求一种方法,以我想要的方式更改程序中的快捷键,希望这是可能的。非常感谢,我成功地使其工作。我做到了通过使用exe名称,它起了作用。我确实做了一些更改,但仍然给了我一个很好的开始。感谢您的帮助!@a.R.Leon您非常受欢迎。很高兴它起了作用!当您有时间时,请接受此作为答案,或者提交您自己的答案,因此对于未回答的问题,它已停止流通。:)嘿,大卫!我刚按下复选标记,它就变成了绿色。我读到这是接受答案的方式,希望我做得很好@A.R.Leon你说得对!感谢并欢迎来到Stack Overflow!