关于输入法切换不够智能的问题——quicker能不能给其它智障软件赋予智能呢?

功能建议 · 1973 次浏览
秋Cool 创建于 2021-04-04 14:24

这是我在AHK论坛看到的一篇文章,我觉得可能很多人都有这个烦恼,所以想问问CL大大咋们Quicker能不能解决这个问题,或者以后能不能考虑来解决一下这个痛点:

 

原地址:https://www.autohotkey.com/boards/viewtopic.php?t=78281

大家好,因为在PS和AI中很多快捷键都是单个按键的, 所以需要关闭中文输入法,但有时又需要输入中文,基本每次用久了都会发生在按快捷键的时候,却打开了输入框的情况,很让人恼火。我打算通过A_Cursor来获取鼠标状态,使只有在要输入文字的时候才打开中文输入法,在其他情况下都保持英文输入法。我写的代码如下:
Code: Select all - Expand View - Toggle Line numbers
GroupAdd, DesignerGroup, ahk_class illustrator   ;把需要这个功能的软件编组
GroupAdd, DesignerGroup, ahk_class Photoshop
GroupAdd, DesignerGroup, ahk_class GHOST_WindowClass

#IfWinActive, ahk_group DesignerGroup
; #IfWinActive, ("ahk_class Photoshop") or WinActive("ahk_class illustrator") or WinActive("ahk_class GHOST_WindowClass")
~LButton::
    If (A_Cursor = "IBeam")  ;当前显示的鼠标光标类型,IBeam(工字光标, 文本选择--输入)
        SendInput, ^+8   ;这个在'输入语言热键'里设置的,一键切换到小狼毫的按键
    Else
        SendInput,  ^+9   ;这是直接切换到英语的热键
Return
#IfWinActive

直接切换到某一输入法的热键是我在系统里设置好的。

这段脚本在chrme、notepad还有搜索里运行良好,在PS和AI的另存为窗口里也运行良好,但在PS和AI本体里完全无


回答1:
我又实验了一下,因为PS和AI也经常要用到Ctrl和Shift键,所以用主楼的方法经常会出发一些不想要的操作,改了改改改成了用大小写控制中英文状态。但是问题仍然存在,用PS的文字工具,这个脚本就不生效,但在重命名图层、另存为、改变透明度百分比的时候,都是生效的。

Code: Select all - Toggle Line numbers
;如果光标不在输入状态,就开大写
~LButton::
    If (A_Cursor = "IBeam")  ;当前显示的鼠标光标类型,IBeam(工字光标, 文本选择--输入)
        SetCapsLockState, Off
    Else
        SetCapsLockState, On
Return


回复内容
zetalpha 2021-04-04 17:30
#1

api失效 无法获取输入法状态了

______ 2021-09-10 15:50
#2

你好楼主,针对ps快捷键和中文冲突问题,目前有解决办法了吗

zdf153 2021-09-12 08:32 :
看到有很多动作可以解决这个问题,这里也给个解决办法,设置中文输入法召唤到前台的快捷键,循环识别光标是不是为输入的工字,不到就按下ctrl+空格,或者英文输入法都快捷键 
zdf153 最后更新于 2021-09-12 08:33
用户abc 2021-09-12 13:12 :

感谢解答。quicker可以获取到大多数软件光标状态的,唯独设计类的软件获取不到。例如PS,AI,ID,CDR,CAD等,而这一类软件却是输入中文和快捷键之间冲突的重灾区。可能他们是软件内光标的原因吧~?


看了其他扩展也是无法自动判别该类软件是否是输入状态,暂时无更好的解决办法。

尝试弄了个针对ps的扩展,是通过颜色查找的方式判定是否激活输入状态,但也只是针对特定环境才用得上,https://getquicker.net/Sharedaction?code=3d2a93d1-3b97-4937-e1c5-08d974e692d3

zdf153 2021-09-12 08:31
#3


回复主贴