Dynamic 使用匹配列表自动热键动态热字符串

Dynamic 使用匹配列表自动热键动态热字符串,dynamic,replace,autohotkey,Dynamic,Replace,Autohotkey,我有以下问题:我有一个逗号分隔的文本值列表,这是一个歌曲名称和其他内容的列表。现在,我想让我的脚本跟踪我键入的内容,作为一个通用的热字符串脚本,当它匹配任何值时,它将用以下内容替换找到的匹配:[I]%match%[/I] 所使用的列表只是一个示例,显示了名称的所有可能的一般形式 Songlist = "abc def,ghijk,lmn,, op,qrs (tuvw)" :?*:%A_Space%:: { Input, SongName, V*, {Space}.,{Enter}, %Song

我有以下问题:我有一个逗号分隔的文本值列表,这是一个歌曲名称和其他内容的列表。现在,我想让我的脚本跟踪我键入的内容,作为一个通用的热字符串脚本,当它匹配任何值时,它将用以下内容替换找到的匹配:[I]%match%[/I] 所使用的列表只是一个示例,显示了名称的所有可能的一般形式

Songlist = "abc def,ghijk,lmn,, op,qrs (tuvw)"

:?*:%A_Space%::
{
Input, SongName, V*, {Space}.,{Enter}, %Songlist%
if ErrorLevel = Match
{
StringLen,songlength, songname
SendInput {BackSpace %SongLength%}[i]%Songname%[/i]
return
}
}

正常情况下,我能把事情弄清楚,但我就是不能动脑

我总是使用数组而不是逗号分隔的列表。 此外,您还需要动态热字符串,幸运的是,有一个很好的库可以为您解决这一问题: 要获取库,请在主脚本的文件夹中创建一个新的ahk脚本,将其命名为Hotstring.ahk,然后粘贴并将代码从此处保存到其中: 然后试试这个:

#include Hotstring.ahk
match = I Will Replace The Song Names
myList := ["abc def", "ghijk", "lmn", "op", "qrs (tuvw)"] ;create our list as array
Loop % myList.GetGaxIndex() { ;Loop through our array
    Hotstring(myList[A_Index],match) ;replace the song name with the contents of match when it's typed
}
如果这不是你想要的,请更具体地告诉我们你想要什么。 对我来说,不清楚您的意思是什么,它将用以下内容替换找到的匹配:[i]%match%[/i]