关于符号显示方案中的白名单机制
为什么要使用白名单机制
- 当你使用 符号显示方案 后,InputTip 需要获取输入光标所在位置
- 在没有黑白名单机制之前,InputTip 会尝试获取所有窗口的输入光标位置
- 不管是前台窗口,还是后台窗口
- 简单说,就是所有窗口进程,只要能尝试的,都会去尝试获取
- 这样的获取模式导致的性能问题,还可以暂且不谈
- 有些窗口,它无法正常获取,甚至可能会导致一些兼容性问题: 意外行为,软件崩溃等等
- 因此,不能让 InputTip 随意的获取输入光标位置
- 于是在
v2.28.0
版本,为 符号显示方案 引入了白名单机制
,并在v2.40.0
中成为必要项 - 只有被添加到
白名单
中的窗口,InputTip 才会尝试去获取输入光标位置 - 这些窗口,是你手动添加的,你可以先测试是否存在兼容性问题,没有问题再添加
- 这就确保了,添加到
白名单
中的窗口,一定是可以正常使用的
黑名单的意义
从
2.40.0
开始,黑名单机制
无法再单独使用,那么它还有什么实际意义呢?由于
2.40.0
中,为黑白名单添加了进程级
和标题级
的规则匹配,黑名单机制
就成为了白名单机制
的补充举个例子
- 如果你将
explorer.exe
以进程级
添加到白名单中 - 那么只要当前的窗口进程是
explorer.exe
,就会显示符号,这符合预期 - 但是在 Windows 桌面时,InputTip 会错误的获取到一个输入光标位置,导致符号会显示在屏幕的右下角
- 这在符号显示逻辑上,无法解决,但是现在,我们可以将它屏蔽
- 通过使用
托盘菜单
中的获取当前窗口相关进程信息
,可以得知- 当处于桌面时,进程是
explorer.exe
,窗口标题是Program Manager
- 当处于桌面时,进程是
- 因此,可以添加一个
标题级
的匹配规则到黑名单
中- 进程名:
explorer.exe
- 匹配范围:
标题级
- 匹配标题:
Program Manager
- 进程名:
- 这样,InputTip 就会认为这种情况在黑名单中,就不会显示符号,实现了对特殊情况的屏蔽
- 当然,你也可以通过白名单配合
匹配模式
中的正则
来取反,但没有黑名单
方便
- 如果你将