编程的时候经常会需要用中文打一些字,但是我又不希望用中文的标点符号,对于我把中文的标点符号都映射成英文的了。但由于用的是SendText()方案,所以就没法触发搜狗输入法的翻页功能,这让我很头痛。不过最近偶然间发现了解决方案,这里分享一下。
解决搜狗输入法翻页问题
首先我用Spy探测了一下搜狗输入法的输入框,没想到居然是可以查到的,中文的候选框资料如下。
搜狗输入法中文候选框
既然能够查到,我就直接使用#If WinActive 进行语境约束。
#if WinActive("ahk_class SoPY_Comp")
k::
MsgBox,OK
return
#if
发现居然无效,顿时感觉希望不大,因为好像没看到有人约束搜狗输入法的候选框,可能这是一个特殊的窗口吧。
不过最后又改了一下,结果发现居然可以了
#if WinExist("ahk_class SoPY_Comp")
k::
MsgBox,OK
return
#if
之后就是重新映射回来。问题完美解决。
;搜狗输入法,语境约束
#if WinExist("ahk_class SoPY_Comp")
:B0*:.::
SendEvent,{.}
return
:B0*:,::
SendEvent,{,}
return
#if
解决搜狗英文输入法空格问题
编程的时候经常会输入一些英文,有时候这些英文和语法并没有什么关系,IDEA也不会给出提示.
对于一个英文比较差的人来说,还是挺痛苦的,但是不用又不行。
好在搜狗输入法有英文模式,但是他这个英文模式不是根据编程场景来优化,只要按下空格或者数字键,都会在单词后面跟上一个空格,这样就非常烦人,经常需要退格。也许就能一起解决了。
我们还是先用Spy看一下那个窗口
搜狗输入法英文模式窗口
比较幸运的是这个窗口的Class,那么就好解决了,和之前的思路一样.
#if WinExist("ahk_class SoPY_Cand")
~Space::BackSpace
~1::BackSpace
~2::BackSpace
~3::BackSpace
~4::BackSpace
~5::BackSpace
~6::BackSpace
~7::BackSpace
~8::BackSpace
~9::BackSpace
~0::BackSpace
#if
网友评论