[更新见122楼,修bug,不再有卡顿感]一个最简单,最美观的,用鼠标箭头表征输入法状态的方案!

在小众,之前有过好几个人发过通过改变鼠标状态,来方便表征当前中英文状态的方案,避免低头看输入法指示器的。

比如:关于用系统光标来提示输入法当前状态的一个想法
再比如: [自制]中英文切换方案

但是,这些都不够美!
我突然想到一个方案,就是让输入法的输入法指示器一直跟随鼠标不就完事了吗?
输入法的皮肤众多,并且大多数可以方便自制皮肤,保证每个人都能找到自己最喜欢的最美一款!

ahk代码非常简单,但效果非常好!

#Persistent
SetWinDelay, -1
global sclass
FileReadLine, sclass, dog.txt, 1
DetectHiddenWindows, On
CoordMode, mouse , Screen

SetTimer, movepinyin, 10
return


^F4::
MouseGetPos, , , msWin, 
WinExist("ahk_id " msWin)
WinGetClass, sclass
FileDelete, dog.txt
FileAppend, %sclass%`n, dog.txt
return

^F5::
MouseGetPos, , , msWin, 
WinExist("ahk_id " msWin)
WinGetClass, noclass
FileAppend, %noclass%`n, cat.txt
return

movepinyin:
{
flag := 0
MouseGetPos, , , msWin, 
WinExist("ahk_id " msWin)
WinGetClass, nowclass
if (nowclass = oldclass)
{
Loop, read, cat.txt
{
    if (nowclass = A_LoopReadLine)
    {
    flag := 1
    WinMove, ahk_class %sclass%,,%A_ScreenHeight% ,%A_Screenwidth% 
    }
}
}
oldclass := nowclass

if (flag = 0)
{
    MouseGetPos, xpos, ypos
    ypos:= ypos +20
    WinMove, ahk_class %sclass%,, xpos, ypos
}
}

return

效果展示:
1 material sougou
动画

2 简灰(前半段忘录箭头了。。。)
GIF 2022-4-23 21-57-05

3甚至有个叫摩尔斯电码的皮肤,爱了爱了
GIF 2022-4-23 22-02-14

更多简洁的皮肤推荐:
图片

图片

还有这个,名字巨长
图片
GIF 2022-4-23 22-15-00

============
另附exe版本,不用安装ahk,打开即用:
支持绝大部分的输入法:如qq拼音,百度,手心,微软,卡饭等。

链接: dogbean.ysepan.com

使用方法

运行软件,鼠标点击任意输入法悬浮指示器,按下ctrl+f4,即可以让目标输入法指示器跟着鼠标了。
有的窗口,如桌面|ps|文件管理器等,不想让输入法指示器始终跟随,可以通过在目标窗口按下ctrl+f5,即可永久忽略该窗口。

11 个赞

欸嘿~ 你的也不错的!没想到我随手写的小软件能一直有人@哈哈

好主意,明儿用起来!

动态皮肤会闪动.

看来不适合动态皮肤~

不过话说动态皮肤都挺大个的,有点占地方,我现在在用最后一个,甚至还没有我的鼠标箭头大。

图片

大家有发现哪款皮肤比较好的也分享一下哈~

有没有开箱既食的食用版本…

1 个赞

我改用这个 感觉还不错.

不过从视觉上, 鼠标移动还是有些卡. 我正在调整间隔时间.

不过这个方案目前来看, 真的是又方便又好看. :+1:t2: 赞!

转成exe了,打开用就哦了,不用装ahk也行,图标直接偷的搜狗的。

图片

链接: dogbean.ysepan.com

1 个赞

谢谢,但是我是 微软拼音输入法 的,测试了,好像没反应… :see_no_evil:

我记得之前我分享过一个类似的. 也是别人写的. 不是用皮肤. 可能更适合动态皮肤或不想换皮肤的人.

这个AHK还有一个支持 微软拼音输入法的版本.

源码和编译好的EXE

;功能:中、英、大小写输入状态提示
;环境:win10+搜狗输入法正式版,输入法状态切换用默认的shift键。
;作者:傲慢与偏见zxc, [email protected]
;时间:20211227
 
; 按下 Shift 键切换输入法
; EN-英文, CN-中文, A-Caps On
CN := chr(20013)
EN := chr(33521)
 
~CapsLock::
{
    If GetKeyState("CapsLock","T")
        ToolTip, Caps_On
    Else
        ToolTip, Caps_Off
    SetTimer, RemoveToolTip, -1000
    return
}
 
Shift::
{
    mainAction("A", EN, CN)
    return
}
 
 ; 鼠标左键按下,且为工形图标,判定为文本输入模式
~LButton::
{
    mainAction("A", CN, EN)
    return
}
 
; 按下Ctrl键查询当前状态
~Ctrl::
{
    mainAction("A", CN, EN)
    return
}
 
mainAction(p_caps, p_status1, p_status2)
{
    If  (A_Cursor = "IBeam") 
    {
        If (IME_GET()=1)
        {       
            If GetKeyState("CapsLock","T")
                ToolTip, %p_caps%
            Else
                ToolTip, %p_status1%
        }
        else
        {       
            If GetKeyState("CapsLock","T")
                ToolTip, %p_caps%
            Else
                ToolTip, %p_status2%
        }
    }
    SetTimer, RemoveToolTip, -1000
}
 
RemoveToolTip:
ToolTip
return
 
IME_GET(WinTitle="")
;-----------------------------------------------------------
; “获得 Input Method Editors 的状态”
;-----------------------------------------------------------
{
    ifEqual WinTitle,,  SetEnv,WinTitle,A
    WinGet,hWnd,ID,%WinTitle%
    DefaultIMEWnd := DllCall("imm32\ImmGetDefaultIMEWnd", Uint,hWnd, Uint)
 
    DetectSave := A_DetectHiddenWindows
    DetectHiddenWindows,ON
    SendMessage 0x283, 0x005,0,,ahk_id %DefaultIMEWnd%
    DetectHiddenWindows,%DetectSave%
    Return ErrorLevel
}
2 个赞

微软输入法都没有皮肤吧话说,可以试试顶楼其他两个链接里别人分享的。。。

请问可以支持手心输入法吗

更新,支持了更多输入法

搜狗
GIF 2022-4-23 22-15-00

百度(一个红绿指示的极简皮肤)
百度

qq拼音
qq

卡饭输入法
卡饭

手心输入法
手心

微软输入法
微软

百度网盘链接:附ahk和exe

链接: dogbean.ysepan.com

图片

有了。有了。

怎么查输入法状态栏是哪个代码

微软的也有了,试试吧

谢谢大佬!还有2个问题想请教:

  1. 跟随的图标能缩小一点或者自定义吗
  2. 能在非输入框的地方禁止显示吗?在任何地方都拖着走,电脑感觉有延迟,拖影。

再次感谢!

ahk装好了开始菜单有个window spy.ahk
用那个可以看,鼠标指到输入法悬浮栏就能看到了

1 个赞

没有输入框的地方本来就不显示啊。
反正搜狗输入法是这样的。