ImTip:通用输入法提示工具

下载 ImTip
免费开源,仅 639 KB。单文件绿色软件,无任何外部依赖,兼容 XP,Vista,Win7,Win8,Win10,Win11 …… 等所有流行桌面操作系统。

获取源码: https://github.com/aardio/ImTip

1、仅用两个字符就可提示中英、全半角、大小写、中英标点、多语言键盘布局等所有状态。

imtip

结合输入法快捷键:「Shift」中/英;「Ctrl + . 」中/英标点;「Shift + 空格 」全/半角;「Alt + Shift」切换语言,美滋滋再也不用低头看右下角了!理论上支持所有输入法,系统自带的微软拼音,微软五笔,搜狗输入法最新版,小小输入法最新版,百度输入法,QQ输入法 …… 包括我测试的日文、韩文、西班牙语输入法都可用。注意:手心输入法需要勾选「怪异模式」。

2、可视化编辑外观,提供了丰富的设置选项。

color

调整文字/图标布局:

screenshots

调整提示窗口偏移位置:

offset

3、可导入、导出外观方案。

可将外观方案直接拖入 ImTip.exe 或外观设置窗口快速导入。支持用剪贴板直接复制粘贴配置方案代码:

screenshots

神奇的是:ImTip 导出的配置文件就是一个软件的完整源代码,可用 aardio 一键生成独立 EXE 文件。

4、默认仅切换输入目标或状态时显示数秒(可自定义),无输入框窗口不显示,广泛兼容几乎所有窗口。

screenshots

支持 UWP 窗口:

uwp

有少数无法获取输入光标的窗口会退化为检测并跟踪鼠标“I”型文本指针,有少数窗口什么也检测不到 —— 可尝试将类名添加到「窗口兼容类名」。

5、支持自定义图标字体。

可以将 *.ttf 格式图标字体直接拖入 ImTip 设置界面,导出配置方案时也会自动嵌入图标字体。

iconfont

点击字符代码编辑框(可粘贴 16进制或 NCR 编码)前面的标题,即可打开文字图标浏览窗口,点选需要的图标即可实时预览效果。

在线制作或下载字体图标: fontello iconfont

6、提供可编程扩展的「超级热键」。

例如按 Ctrl+$ 打开财务大写、日期时间大写、数学运算工具:

cn

自动检测输入数值的格式,输入错误格式会显示格式说明:

cn-format

超级热键示例,按大写键自动切换到英文输入:

["CAPSLK"]  = function(){  
    key.ime.setOpenStatus(false);
    key.ime.setConversionMode(0); 
    
    return true; //允许按键继续发送
};

7、托盘菜单提供快捷启用系统输入法、切换双拼方案等功能。

menu

适用 Win10/ Win11 以及之后的系统自带的微软输入法。如果小鹤双拼方案未安装仍然会出现在双拼候选列表中 —— 勾选即可自动安装。

8、 CPU 占用极低

ImTip 正常工作时基本为休眠状态,基本不占 CPU 和内存。
我在 Win7, Win10, Win11 测试 CPU 占用基本保持为 0 ,内存占用没超过 10 MB。

设置样式的窗口 —— 为了尽量让大家用得舒服,控件和功能略多。但这个功能并不需要经常使用,关闭设置窗口后会立即释放内存。

可以通过设置「跟踪检测速度」调整 CPU 占用:

image

默认有微小延迟 —— 这是程序的主动优化( 并非被动延迟 ),您可以加快「跟踪检测速度」(更快地实时跟随光标,更小延迟),这增加的资源占用仍然是可忽略的。

常见问题


一、关于英文键盘

有些第三方输入法会安装「中文美式键盘」 - 可能导致不必要的错乱。这个键盘在 Win10 其实已被废弃,建议移除或更改为「英语美式键盘」。Win7/Win10/Win11 可在 ImTip 托盘菜单中禁用启用一次「英语键盘」就可修复该问题。

二、管理权限窗口

ImTip 默认以普通权限启动,以管理权限启动 ImTip.exe —— 才会对其他管理权限窗口生效。以管理权限启动后重新勾选 「允许开机启动」,则开机以管理权限启动( 不会再弹出请求权限弹框 , 注意只有同样在管理权限下启动才能取消此设置 )。

三、个别窗口无法识别状态

个别输入法在某个特定的窗口偶尔会状态错乱(或导致其他输入法错乱),切换到其他窗口(或重新打开原窗口)可恢复正常(这可能是因为安装了某些有问题的输入法导致的问题)。

四、个别窗口无法检测到输入光标或鼠标文本指针

虽然 ImTip 兼容几乎所有窗口,但仍然可能会有少数窗口无法检测输入光标或鼠标文本指针。这时候可打开 ImTip 配置窗口在「兼容类名」中尝试添加该窗口的类名(可使用窗口探测软件查看)。

五、无输入框的窗口不显示

即使取消勾选「仅切换输入目标或状态后显示」,在检测不到输入目标的窗口仍然是不会显示的(除非设置了兼容窗口类名)。

六、输入法兼容性

搜狗输入法如果识别状态遇到任何问题,请安装搜狗输入法最新版即可。

小小输入法最新版已完美支持 ImTip,可使用小小输入法自带的自动更新功能更新到最新版。注意需要注册 TSF 内置组件(这是默认选项)。小小输入法返回的语言代码受系统设置的区域格式影响,如果区域格式不是中文,请到设置中修改为中文,并重新执行小小输入法 tsf 目录下的卸载、注册程序重新注册一次 TSF 组件即可正常识别状态。

手心输入法英文模式返回的状态不正确,但可以正确识别中文标点等状态。好在手心输入法每次切换到中文模式都会自动切换为中文标点,所以可在 ImTip 配置窗口中勾选「怪异模式」即可区分中英状态。

小鹤输入法有一个小问题,在英文模式下切换全半角后状态会错乱,按 Shift 切换一次中英模式会恢复正常,可能基于多多的输入法都有类似问题。

七、关于切换输入法

在超级热键中,已提供了切换输入法中英状态的演示。如果没有按热键,ImTip 不会影响或切换输入法。如果有这类需求,可向输入法作者反馈。

八、启动参数

ImTip.exe *.aardio
加载配置方案,或者直接将配置文件拖到 ImTip.exe 上也可以。

ImTip.exe 无参数
如果 ImTip 已运行则打开配置窗口,或者直接双击 ImTip.exe 也可以。

九、关于 /.ImTip/ 目录

ImTip 默认将运行时数据( AppData )保存在 AppData 目录(推荐保持这个默认设置,AppData 体积很小放在独立目录,可一键删除不用卸载)。如果在 ImTip.exe 所在目录创建 /.ImTip/ 目录,ImTip 将会优先使用该目录保存 AppData —— 将 AppData 存于 EXE 目录是过时与不安全的做法,容易出现误删操作,也不能方便地移动独立 EXE 文件(例如将 EXE 放在桌面),影响便携性。

十、提示窗口闪烁

ImTip 默认会阻止重复运行,但如果您在 aardio 开发环境中单独运行创建提示窗口的源码,并且同时创建了多个输入法提示窗口,多个窗口相互冲突当然就会闪烁了。

13 Likes

感谢大佬神速做出来的提示器!
可以看出大佬做事很注意细节,考虑周到。

问题反馈:

窗口/背景:

  • 背景颜色 - >宽度,调整的时候中文字符不会动,只有标点字符在跟随移动。

  • win7,CPU和内存占用有点大,不知道能不能优化一下。
    QQ截图20220520113802

  • 关闭“仅在切换输入法状态后显示”后测试,不少窗口指示器不能正常显示:

使用的是手心输入法。

浏览器地址栏:默认中文输入法,鼠标点一下正常中文提示,输入几个文字后,SHIFT切换到英文,无任何提示,无法唤醒指示器状态。
点击浏览器地址栏,地址变成选中状态,中文提示正常。不输入任何文字,然后把鼠标在页面点击一下,地址栏仍然是选中状态,指示器会自动变成英文,且不会消失。并且这个英文指示器会在所有已打开的页面上随机位置一直显示。

QQ聊天窗口:无任何提示。

还有一些输入框只有中文状态显示,SHIFT切换到英文无提示,点击鼠标也没用。

1 Like

对于不支持的窗口,可以增加个点击触发提示吗?像这个https://meta.appinn.net/t/topic/32834

1、调整提示窗口的时候,中文字符不会动。
你的中文字符是左对齐,当然窗口怎么调都不会动呀。

调整文字位置是调边距,不是调窗口宽度,看动画:

screenshots

2、CPU 占用问题。

ImTip 正常工作是基本为休眠状态,不占内存和CPU。
我在 Win7, Win10, Win11 测试 CPU 占用基本保持为 0 ,内存占用没超过 10 MB。

当然设置样式的窗口功能和控件都比较多,但这个窗口并不常用,配置好就不用再动了。

3、手心输入法状态不显示。
我测试的输入法基本都完美支持,但不排除某些输入法没有正常响应这个消息,这个我这里正常是改不了的,后面我再研究一下。

内存占用已重新传图。
1、调整提示窗口的时候,中文字符不会动。

1 Like

感谢建议!
刚发布的 ImTip 1.3 已支持几乎所有窗口。

你没明白这个用法,
你字符右对齐,他当然会跑到右边去。

你的意思是字符左对齐,然后这个字符再往右移一点,所以你需要调的是最上面的「左边距」,其实这个排版非常方便,你再试试就明白了。

反馈两个问题:一个是onenote不能识别,还有utools软件窗口能不能识别切换

其实我想调的是背景颜色和字符之间的宽度,希望小一点。不是字符和标点的间距。 ::
QQ截图20220520115852

背景颜色和字符之间的宽度 —— 不就是「边距」吗?!
你利用边距可以让字符往任何地方移动啊,你动手调一下就明白了。

感谢反馈,刚发布的 ImTip 1.3 已支持几乎所有窗口。

调好了!刚才没注意到边距。 ::

会定位在奇奇怪怪的位置,能实现在背景窗口区域内居中么?

感谢反馈,请问什么程序的什么窗口定位在奇怪位置?
刚发布的 ImTip 1.3 已经可以支持几乎所有窗口,可以更好地定位。

谢谢大佬,太厉害了!
我的微信无法正常获取状态(永远显示英文)大佬能抽空解决吗?而且这次不像自己编译那个,那个是永远显示“英+半角”,现在用成品exe是显示“英+禁用标志”。
谢谢!

系统环境:
Win 11 21H2(CN+EN语言包,使用EN语言包)
微信 3.6.0.18 CN语言
微软五笔

感谢反馈,
Win11 + 微信 + 微软五笔 这边测试显示状态正常。

你是这个窗口不正常,还是所有窗口都不正常?!

其它窗口都没问题,包括QQ。
我也奇怪,我唯一可以和你不同的就是我是安装了Win11+英文语言包,系统设置为英文显示。
能排除解决一下吗,强迫症患者有些难受
谢谢

PS:我也注意到了,这次成品exe中,对就英文键盘非大写状态是显示“英文+禁用标志”,说明微信获取到的一直是英文键盘状态。

我这边也是 Win11 英文界面,这不会导致问题。
另外这边测试微信获取的状态是正常的。我当然愿意解决问题,但目前还无法确认和重现问题。我会继续测试,感谢反馈。

比用这种情况。。差不多只要切换到浏览器就一定要在什么地方显示一下,然而没有输入框的话这个位置就不知道会是哪儿了。。

你在浏览器里点输入框打字时,显示的位置是对的吧?!

浏览器里输入框失去焦点时,有时候仍然会返回之前的输入光标位置,这时候就算你在窗口居中显示也没有什么意义。

建议你设置输入状态提示显示几秒关闭,这东西没有必要一直在那显示。
这样你一点输入框就会提示输入法状态,切换输入法状态也会提示,跟着输入光标走,离开输入框很快就会关了。

image

也可以试试其他在鼠标指针处显示状态的软件,这就不用取输入框,任何时候都显示,跟着鼠标走应当比居中方便一些。不过这又会带来一个新的问题,就是很多不用输入的窗口也强迫显示了。

你看看更喜欢哪一种就用哪一种。