Skip to content

关于符号显示方案中的白名单机制

注意

这里的白名单机制是 符号显示方案 中的,如果你不使用 符号显示方案,它会直接无效

TIP

  • 白名单机制 是从 v2.28.0 引入的,在 v2.40.0 中成为 符号显示方案 的必要项
  • 简单说,从 v2.40.0 开始,如果你想使用 符号显示方案,就必须设置 白名单

为什么要使用白名单机制

  • 当你使用 符号显示方案 后,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 就会认为这种情况在黑名单中,就不会显示符号,实现了对特殊情况的屏蔽
    • 当然,你也可以通过白名单配合 匹配模式 中的 正则 来取反,但没有 黑名单 方便