搜狗输入法吧 关注:5,833贴子:51,627
  • 19回复贴,共1

纯键盘党福利—利用AHK设置搜狗输入法添加自定义短语快捷键

只看楼主收藏回复

搜狗输入法的自定义短语功能很好用,特别是对双拼用户添加形码,自定义词语,成语,谚语等。可是作为纯键盘党,苦于这个功能没有快捷键。批量添加还好说,可以直接复制到配置文件里;可经常会有单个词组需要添加的情况,每次要用鼠标点来点去的。直到前几天入坑了AHK(AutoHotKey)这款神器,问题总算得到了完美解决。


IP属地:湖北1楼2021-08-30 12:40回复
    我用的是搜狗的10.4版本。因为10.5版本页面大改,而且感觉有卡顿,我就退回到10.4了。如果用了新版的请在此基础上自行研究。
    基本思路是这样的:
    1. 固定搜狗输入候选框的位置;
    2. 键盘输入需要添加的短语拼音;
    3. 通过AHK自动完成模拟鼠标滑动和点击,在候选框上进入添加自定义短语页面;
    4. 通过AHK自动完成模拟鼠标点击输入框,然后键盘输入需要添加的短语;
    5. 键盘敲击Tab键两次切换到“候选位置”,然后敲击上下方向键选择;
    6. 键盘敲击回车键,AHK检测到回车键抬起后,模拟鼠标点击“确定”,至此,短语添加完毕。


    IP属地:湖北3楼2021-08-30 12:59
    回复
      2025-11-24 15:07:13
      广告
      不感兴趣
      开通SVIP免广告
      这个方法的缺点就是要固定搜狗候选框的位置。如果以前都是让候选窗口跟随光标走的,可能会不太习惯。
      下面开始详细的设置步骤。
      1. 搜狗“属性设置”界面里,“外观”→“候选窗口跟随光标”前的勾去掉。这样就固定了候选框的位置。
      然后打个字看一下候选框位置在哪里,如果不合适的,可以用鼠标选个趁手的位置。最好是个好记忆的位置,因为如果以后不小心把位置改了,很容易再改回来。比如我选的位置就是参照桌面壁纸的图案,选了一个方便又好记住的位置。
      这是我的桌面壁纸:

      壁纸上有一张桌子的图案,候选框的右上角就在桌子桌面和桌腿相交的位置重合:


      IP属地:湖北5楼2021-08-30 13:17
      收起回复
        2. 电脑里没有AHK软件的,先下载安装好AHK软件,然后桌面右键新建一个.ahk文件,起个名字(也可以新建一个记事本文档,把后缀.txt改成.ahk)。
        右键新建的ahk文件,选择Edit Script(或者打开方式里,用记事本打开)
        复制下面的内容到文件里
        ^!Z::
        DllCall("SetCursorPos", "int", 994, "int", 656)
        Sleep 300
        DllCall("SetCursorPos", "int", 997, "int", 656)
        Sleep 200
        DllCall("SetCursorPos", "int", 1025, "int", 605)
        Click
        Sleep 1500
        MouseMove, 248, 206
        Click
        KeyWait, Enter, D
        Sleep 100
        DllCall("SetCursorPos", "int", 951, "int", 652)
        Click
        Sleep 300
        MouseMove, 310, 307
        Click
        return


        IP属地:湖北6楼2021-08-30 13:26
        回复
          这里的代码内容是需要根据自己的需要修改的,不能直接用。花点时间了解了AHK软件后,就能知道这些代码是什么意思。简单说明一下:
          ::(第一行双冒号)前面的 ^!Z 表示的是Ctrl+Alt+Z, 这是我设置的快捷键,按下后就能快速添加自定义短语。其中 ^ 表示的是 Ctrl, 而 ! 表示的是Alt, Z就是Z。可以根据需要修改。顺带一提Shift是用 + (加号)来表示,比如想设置成Ctrl+Alt+Shift+A为快捷键,只需改成^!+Z就可以了。Alt+U只需改成!U就可以了


          IP属地:湖北7楼2021-08-30 13:38
          收起回复
            DllCall("SetCursorPos", "int", 994, "int", 656)
            Sleep 300
            DllCall("SetCursorPos", "int", 997, "int", 656)
            Sleep 200
            这两行意思是模拟鼠标指针移动到桌面上两个固定的位置,这是打字时候选框内第一个字母的位置,两个位置稍稍偏移一点,目的是让添加短语这个框框出来。


            IP属地:湖北8楼2021-08-30 13:43
            回复
              关于如何确定位置的坐标,要使用AHK软件的Window Spy功能。把鼠标指针移动到候选框第一个字母的位置时,记录下Window Spy显示当前鼠标位置,因为我使用的是相对于屏幕的绝对位置,所以记录的是Screen这一行的位置,其实也可以使用相对于窗口的位置那样代码会更简单一些(比如MouseMove, 248, 206),这时记录Window或Client这一行就行了。


              IP属地:湖北9楼2021-08-30 13:51
              回复
                确认了位置坐标,下面是Sleep,也就是延时,这是为了给电脑一点时间反应,不容易出错。单位是毫秒,这里的时间不用太长,300或200毫秒就够了。
                DllCall("SetCursorPos", "int", 1025, "int", 605)
                Click
                Sleep 1500
                这里的坐标是“添加短语”框框的位置坐标,用上面说过的方法取得,然后模拟鼠标单击(Click),就进入了“添加自定义短语”界面。这个界面弹出来需要一点时间,所以Sleep时间设定长一些,1.5秒应该够用了。
                MouseMove, 248, 206
                Click
                然后模拟鼠标移动到输入框的位置,单击


                IP属地:湖北10楼2021-08-30 13:59
                回复
                  2025-11-24 15:01:13
                  广告
                  不感兴趣
                  开通SVIP免广告
                  这时的输入框处于激活状态,输入需要的短语就可以了,输入完之后,按两下Tab键,会跳到候选位置这里,然后按上下箭头调整候选位置。至此短语算是添加完了,再多按几次Tab键,到“确定”就行了,不过我有点懒,所以又添加了两下鼠标点击帮我点确定。
                  KeyWait, Enter, D(这个意思是等待回车键按下)
                  Sleep 100
                  DllCall("SetCursorPos", "int", 951, "int", 652)
                  这个位置是“确定”按钮旁边一点,因为有时候若是选完候选位置直接按回车键,会出现下面这个情况

                  候选位置的下拉框出来了,这时候只点一下确定按钮是没用的,所以需要先点一下确定按钮旁边,让下拉框回去。
                  Click
                  Sleep 300
                  MouseMove, 310, 307(这个位置)是确定按钮的位置
                  Click
                  return


                  IP属地:湖北11楼2021-08-30 14:08
                  收起回复
                    至此,短语添加完成了,达到的效果是,我只需打出来想要添加短语的拼音,然后按一下快捷键(Ctrl+Alt+Z),就很快进入了添加界面,并自动激活输入框,然后我输入想要添加的短语,tab键和方向键确定候选位置,按回车,就添加完成了。全程双手不需要离开键盘,更不需要碰鼠标。


                    IP属地:湖北12楼2021-08-30 14:13
                    回复
                      3. 根据自己的需要确定好用哪几个键作快捷键,以及用window spy确定并修改鼠标位置。这个专为你自己打造的快捷键代码就算完成了,然后保存。双击打开运行后,就可以试一试了。此时右下角任务栏会有H这个图标
                      另外,如果想每次开机都自动运行这个脚本文件,可以把这个文件的快捷方式放到“启动”文件夹里,方法是先给文件创建一个快捷方式,然后点击桌面左下角的“开始”→“所有程序”,找到“启动”文件夹,右键→打开,然后把刚刚的快捷方式放进去就可以了。
                      写这个帖子的目的,是因为之前找了好久关于快速搜狗添加自定义短语这方面的内容,都没有找到合适的解决方法。比如也试过Quicker,自己写了动作,结果差强人意。直到前两天接触了AHK这个神器,花了几个小时终于解决了这个困扰了我很久的问题。把这个方法记录下来,后来者如果有碰到和我类似问题的,希望能提供一点参考。
                      The End


                      IP属地:湖北13楼2021-08-30 14:25
                      回复
                        厉害了,感谢你了


                        14楼2021-08-30 15:08
                        回复
                          很赞


                          IP属地:河南来自手机贴吧15楼2022-02-20 09:42
                          回复
                            大佬,可以给个格斗游戏无限连范本吗 我参考一下,中途可以取消,我用按键精灵做的只要中途取消就会概率性按键失灵。没打着人不取消不行啊


                            IP属地:四川16楼2022-05-13 18:38
                            收起回复