一个菜鸟的求助帖
写了一个gui控件hotkey,来自定义按键映射
gui,add,Hotkey, w200 vmyHotkey
gui,add,Button,w85,应用
gui,Show
button应用:
{
gui,Submit,NoHide
}
F1::
send %myHotkey%
return
gui,add,Hotkey, w200 vmyHotkey
gui,add,Button,w85,应用
gui,Show
button应用:
{
gui,Submit,NoHide
}
F1::
NewStr := SubStr(myHotkey, 1 , 1)
switch NewStr
{
case "^","!","+":
send %myHotkey%
Default:
send {%myHotkey%}
}
Return
2022年4月3日 22:19:01
以上代码依旧有问题,shift+right这种组合键是无法运作的,这种组合键在hotkey控件获得关联变量是”+Right”这种,若根据上面代码使用的话会判断使用send %myHotkey% 最后发送的结果是shift键,以及Right文本.
在这之后我又想到可以使用正则判断,然后替换字符串.
gui,add,Hotkey, w200 vmyHotkey
gui,add,Button,w85,应用
gui,Show
button应用:
{
gui,Submit,NoHide
}
F1::
sendUserHotkey(myHotkey)
return
sendUserHotkey(GuiHotkeyVar)
{
RegExMatch(GuiHotkeyVar, "[^!+^#]+",str_temp1)
;根据按键列表,以及hotkey控件的性质特点,若是组合键前缀必定是含有!^+,.此步骤利用正则获得后缀按键名称 .[^...] 匹配 不 在类中的任何一个字符
str_temp1:= % "{" str_temp1 "}" ;对非修饰符键名进行修改,加上{}
RegExMatch(GuiHotkeyVar, "[!+^#]+",str_temp2) ;利用正则获得前缀修饰符,有可能组合键是多个修饰符,
str_temp2 :=% str_temp2 str_temp1
send,% str_temp2 ; 这里发送的是:修饰符{按键} 格式,如shift+Right 为:send,+{Right}
}
同问,也不太会用这个