关于使用AHK输入法热键的问题

各位大佬好,
我的想法是在输入中文的时候,如果有候选框存在的时候,可以绑定热键f跟j,来输出一个tab键指令。如果没有候选框,同样按f跟j时,会输出一个;和i的指令。我的代码如下,现在主要问题是检测候选框的存在与否。 希望明白的大佬可以指点一下我。搜便网络貌似没有相似的案例。谢谢啦

#Requires AutoHotkey v1.1.33.11
selecting := “ahk_class VNDDSKIN_CAND”

f::f

f & j::
If WinExist(“ahk_pid 14080, ahk_id 39980890”)
Send t Else Send ;i
Return


按fj的时候速度要快

#NoEnv

f::f
f & j::
IfWinExist, ahk_class GPYHORIZONTAL
	MsgBox, test
	else
	MsgBox, test2
return
1 个赞

大哥这个GPYHORZONTAL是所有输入法通用的吗?我这个小鹤音形不行嘞。

不要用ahk_pid或者id作为title来检测候选框是否存在,因为程序每次启动后pid和id都不同于上一次。建议改用class或者title,在你这里应该分别是ahk_class VNDDSKIN_CAND和Colourful_cand。
另外,f & j不算是好的组合键,因为不太好触发,反而没tab好用。

1 个赞