<!-- InputTip -->

# 版本更新日志

- 修复 `状态切换快捷键` 在部分情况下需要二次设置才会生效的问题

## 2025.09.06

- 暂停时恢复鼠标样式
- 手动切换输入法状态识别模式
- 修改配置菜单 `输入法模式` 为 `输入法相关`
- 优化了 `输入法相关` 配置菜单
- 禁用 ComboBox 控件的鼠标滚轮以避免误切换
- 优化了按键输入统计功能的默认文本
- 其他的修复和优化

## 2025.09.03

- 使用 `托盘菜单` 中的 `退出` 会恢复鼠标样式
- 修复 `符号的延时隐藏` 的闪烁问题 ([#218](https://github.com/abgox/InputTip/issues/218))
- 单击托盘图标暂停/运行 ([#216](https://github.com/abgox/InputTip/issues/216))

## 2025.09.02

- 允许偏移量设置的值为小数 ([#219](https://github.com/abgox/InputTip/issues/219))
- 修复 `符号悬停时隐藏` 的闪烁问题 ([#217](https://github.com/abgox/InputTip/issues/217))

## 2025.08.29

- 添加 `符号的显示模式`
- 优化了文件丢失的处理逻辑
- 优化了鼠标样式的恢复逻辑
  - 在关闭 `鼠标方案` 时，确保在无法加载之前的工形鼠标样式时，能够为其加载一个标准样式
- 优化了菜单内容描述
- 其他的修复和优化

## 2025.08.26

- 为可能的内存读写错误添加友好的提示
- 修复了列表中列宽的计算问题

## 2025.08.25

- 调整了托盘菜单项的顺序
- 优化了初始化引导
- 优化了菜单内容描述
- 其他的修复和优化

## 2025.08.22

- 优化了 `托盘菜单` 中的菜单布局

  - 将 `更改配置` 拆分为 `状态提示 - 鼠标方案`、`状态提示 - 符号方案`、`其他设置`
  - 简化了一些名称
    - `设置更新检查` => `更新检查`
    - `设置输入法模式` => `输入法模式`
    - `设置状态切换快捷键` => `状态切换快捷键`
    - `获取当前窗口相关进程信息` => `获取窗口信息`
    - `设置特殊偏移量` => `特殊偏移量`
    - `设置光标获取模式` => `光标获取模式`
    - `设置符号显示在鼠标附近` => `在鼠标附近显示符号`
    - ...
  - 将一些功能移动到 `其他设置` 中
    - `更新检查`
    - `JAB/JetBrains IDE 支持`
    - `打开软件目录`
    - `设置用户信息`
      - 因为它主要用于少数域用户添加域前缀，大部分人用不到

- 优化了菜单内容描述
- 修复了部分配置修改后未及时生效的问题
- 其他的修复和优化

## 2025.08.20

- 精简并优化了 `关于` 界面
- 优化配置菜单的文本描述
- 其他的修复和优化

## 2025.08.03

- 优化配置菜单的文本描述
- 简化了一些配置项的名称
- 使用防抖优化了配置写入
- 其他的修复和优化

## 2025.08.02

- 调整配置文件检查逻辑和初始化引导
- 重构代码以优化引入和逻辑处理
- 修正屏幕偏移计算逻辑和异常处理
- 为 `设置光标获取模式` 添加 `快捷添加` 和 `手动添加` 按钮
- 修改配置 `每多少毫秒更新符号的显示位置和状态` 的值的范围
  - 从 1-500 更改为 1-100
- 调整符号显示和隐藏逻辑
- 优化配置菜单的文本描述
- 修复配置的更新逻辑
- 其他的修复和优化

## 2025.07.20

- 现在 `设置特殊偏移量` 也实现了规则匹配
  - `匹配模式` 只能使用 `相等`，无法使用 `正则`
- 优化了更改配置时的 IO 写入，解决了快速更改配置值可能导致丢失更改的问题
- 修复了重启系统后 `设置不同屏幕下的基础偏移量` 的值可能被重置的问题
- 在更新弹窗中显示更新日志内容
- 优化配置菜单的文本描述
- 其他的修复和优化

## 2025.07.12

- 从这个版本开始，以发布时间作为版本号
  - 对于 zip 版本的独立版本，照常添加第四位版本号
  - 如: `2025.07.12.1`
- 更新 `托盘菜单` 中的 `设置特殊偏移量`
  - 移除了 `一键清空` 按钮，它没有太大意义
  - 添加了 `设置不同屏幕下的基础偏移量` 功能，详情请查看 `设置特殊偏移量` 中的 `关于`
- 修复设置符号显示类型的配置问题
  - 当从 `不显示符号` 更改为其他时，符号在配置页面会立即显示，不需要再切换一次窗口
- 优化配置菜单的文本描述

## 2.40.6

- 修复图片符号路径无法设置为空的问题
- 优化配置菜单的文本描述
- 修改了 Ctrl+Space 的模拟按键输入，解决可能存在的冲突

## 2.40.5

- 修复一个配置项的写入错误

## 2.40.4

- 移除一些菜单中的按钮默认聚焦，避免与自动切换的模拟输入(`Ctrl+Space`) 冲突
- 移除默认的窗口置顶
  - 仅为 `获取当前窗口相关进程信息` 保留置顶，便于查看
- 优化 zip 版本更新逻辑并改进错误处理
- 为规则添加界面增加手动添加功能并更新说明
- 优化一些配置菜单的文本描述
- 其他的修复和优化

## 2.40.3

- 修复了需要状态自动切换时，可能切换失败的问题
- 其他的修复和优化

## 2.40.2

- 修正了 2.40.1 版本中对 `无键盘和鼠标左键点击操作时，符号在多少毫秒后隐藏` 配置问题的错误修复
- 重新实现了该功能的正确隐藏逻辑
- 修复了 `设置符号显示在鼠标附近` 的显示问题
- 其他的修复和优化

## 2.40.1

- 修复了当使用 `无键盘和鼠标左键点击操作时，符号在多少毫秒后隐藏` 这个配置时的符号显示问题
- 其他的修复和优化

## 2.40.0

- 优化了配置文件中的一些配置项的存储结构和命名

- 整合 `符号显示黑白名单`

  - 从 `2.40.0` 版本开始，`黑名单机制` 无法单独使用
  - 现在以 `白名单机制` 为核心，`黑名单机制` 只能作为反面补充
  - 如果想要显示符号，必须设置 `白名单`
  - 详情参考: [符号显示方案的白名单机制](https://inputtip.abgox.com/faq/white-list)

- 将 `设置符号显示位置` 更名为 `设置符号显示在鼠标附近`
- 将配置菜单中的 `窗口级` 更正为 `进程级`

  - `窗口级` 的描述不够清晰，实际运行时，匹配的是整个进程

- 为以下功能引入 `进程级` 和 `标题级` 规则匹配

  - `设置符号显示在鼠标附近`
  - `符号显示黑白名单`

- `设置特殊偏移量` 保持旧版，进行部分优化

  - 强行引入 `进程级` 和 `标题级` 规则匹配会导致性能问题

- 优化 `设置光标获取模式` 的配置菜单
- 优化核心的符号显示和鼠标样式加载逻辑，减少不必要的性能消耗
- 优化首次使用 InputTip 时的初始化引导
- 当以管理员权限启动失败时，自动将配置修改为以用户权限启动
- 优化一些配置菜单的文本描述
- 其他的修复和优化

## 2.39.0

- 增强 `指定窗口自动切换状态`功能

  - 现在可以实现 `进程级` 和 `标题级` 的状态自动切换
  - 举个例子:
    - 通过 `Win + R` 打开的运行窗口，它的进程是 `explorer.exe`，它的窗口标题是 `运行`
    - 现在可以添加规则，实现: 当激活窗口为 `explorer.exe` ，且窗口标题为 `运行` 时，自动切换到 `英文状态`
  - 详情查看: `托盘菜单` => `指定窗口自动切换状态` => `关于`

- 优化了 `指定窗口自动切换状态` 的配置菜单操作逻辑，以适配新的自动切换规则
- 添加更改托盘图标的快捷设置

  - 在 `更改配置` => `其他杂项` 中，快捷选择图标文件路径，以更改托盘图标

- 在 `托盘菜单` 中添加: `获取当前窗口相关进程信息`

  - 它从 `更改配置` => `其他杂项` 中移出，配合 `指定窗口自动切换状态` 使用更便捷

- 优化了一些菜单文本描述
- 更新内部函数，使用 `createUniqueGui` 替换 `createGui`
- 其他的修复和优化

## 2.38.0

- 为 `显示实时的状态码和切换码` 添加快捷键设置
  - 当出现基于状态错误的问题时，需要通过 `显示实时的状态码和切换码` 来排查问题
  - 但是手动点击 `显示实时的状态码和切换码` 按钮可能会导致问题因为点击行为消失，难以再次复现
  - 这种情况，就应该直接使用快捷键，快速显示并排查问题
- 为 `指定内部实现切换输入法状态的方式` 新增选项: `模拟输入 Ctrl+Space`
- 优化了 `托盘菜单` 中的设置顺序
- 将快捷键设置逻辑抽离为一个公共方法
- 其他的修复和优化

## 2.37.5

- 优化了中英文状态切换函数
- 修复了可能在托盘菜单中添加多个准备静默更新提示的问题
- 修改配置项: `Shift 键是否可以正常切换输入法状态` => `指定内部实现切换输入法状态的方式`
- 其他的修复和优化

## 2.37.4

- 优化和修复了 `设置输入法模式` 相关内容
  - 修复了 `【自定义】` 模式下，指定多个数字无效的问题
  - 优化了配置菜单布局和 `关于自定义` 标签页中的帮助说明
- 优化了创建快捷方式到桌面的功能
  - 在 zip 版本中，创建的快捷方式不再指向 InputTip.bat
  - 如果终端进程卡死，InputTip.bat 无法立即运行
- 其他的修复和优化

## 2.37.3

- 重新添加强制显示托盘菜单图标
  - 自重启无法完全解决托盘菜单未显示的问题
- 优化了初始化引导
  - 如果直接关闭初始化引导，再次启动会重新进入初始化引导
- 其他的修复和优化

## 2.37.2

- 移除强制显示托盘菜单图标，通过自重启解决
- 优化了 `设置开机自启动`
- 其他的修复和优化

## 2.37.1

- 修复了通过任务计划程序自启动时，托盘图标无法显示的问题
- `创建快捷方式到桌面` 将根据不同情况创建更合适的快捷方式

## 2.37.0

- 添加了 `自动静默更新`
  - 设置: `托盘菜单` => `设置更新检查` => `启用静默更新`
- 优化了 `设置开机自启动` 的 `【任务计划程序】`
  - 现在创建的任务计划 `abgox.InputTip.noUAC` 会自带开机自启动，不再通过 `shell:startup`(自启动文件夹) 实现
- `托盘菜单` 中的 `以管理员模式启动` 更名为 `以管理员权限启动`
- 优化了部分配置菜单的文本描述、布局等
- 优化了部分检查更新的相关逻辑
- 其他的修复和优化

## 2.36.10

- 修复了一个变量类型错误导致的报错
- 将版本号写入配置文件，避免使用非内置更新导致更新时的配置迁移变化无法触发
- 其他的修复和优化

## 2.36.9

- 优化了设置符号独立配置的配置菜单的布局
- 修复了更新时的配置迁移
- 其他的修复和优化

## 2.36.8

- 优化了 exe 版本的更新逻辑
- exe 版本使用 [AutoHotkey 2.0.19](https://github.com/AutoHotkey/AutoHotkey/releases/tag/v2.0.19) 进行编译
  - 在 [AutoHotkey 2.0.19](https://github.com/AutoHotkey/AutoHotkey/releases/tag/v2.0.19) 中有对内存相关的修复
  - 这或许能解决极少数情况下可能出现的 `Invalid memory read/write` 的报错
- 其他的修复和优化

## 2.36.7

- 为 zip 版本更新时的文件下载添加待下载数量及进度提示
- 修复了特殊偏移量失效的问题

## 2.36.6

- 修复了在 `设置特殊偏移量` 中，点击列表中空白区域导致的报错
- 修复了多块屏幕下，当鼠标不在指定的屏幕中，相应的特殊偏移量失效的问题
- 修复了当 JAB 程序(`InputTip.JAB.JetBrains.exe`)存在旧版本时，勾选 `启用 JAB/JetBrains IDE 支持` 后，没有使用新版本的 JAB 程序的问题

## 2.36.5

- 修复了 zip 版本中的 JAB 相关功能，未明确指定 ahk 运行环境的问题
- `firefox.exe`(火狐浏览器) 默认的光标获取模式从 `GUI_UIA` 修改为 `MSAA`
  - https://inputtip.abgox.com/faq/support-app-list
- 其他的修复和优化

## 2.36.4

- 修复了运行路径带有空格时可能出现的运行错误
- 其他的修复和优化

## 2.36.3

- 修复了 `无键盘和鼠标左键点击操作时，符号在多少毫秒后隐藏` 的符号隐藏问题
  - 现在，符号隐藏后，移动鼠标，不会再出现符号闪烁
- 其他的修复和优化

## 2.36.2

- 修复了 zip 版本的 `开机自启动` => `【应用快捷方式】` 无效的问题
- 完善了 zip 版本的版本更新校验相关逻辑
- 完善了必要文件丢失的相关处理逻辑
- 其他的修复和优化

## 2.36.1

- 改进了 `设置输入模式` 中的 `自定义`
  - 现在的 `自定义` 可以创建多条规则，并按照顺序匹配规则，如果匹配成功，将判断输入法为对应状态
  - 你可以选择一个兜底的状态，如果所有规则都无法匹配，将判断为这个状态
  - 也就是: 由使用者根据系统返回的状态码和切换码，通过规则匹配告诉 InputTip 当前是什么状态
- 修复了 `重启` 后可能存在两个托盘图标的问题
- 其他的修复和优化

## 2.36.0

- 优化和修复了当通过项目源代码启动 InputTip 时的代码逻辑
  - 修复了无法正常使用 `启用 JAB/JetBrains IDE 支持` 的问题
  - 在 `托盘菜单` 中添加 `以管理员模式启动`，默认关闭，点击它即可开启
  - 优化了版本更新逻辑
- 修复了添加任务计划程序时可能出现的错误覆写
- 完善了一些配置菜单的窗口标题
- 在 `托盘菜单` 中添加 `创建快捷方式到桌面`
- 移除项目中的 exe 程序文件，仅保留 AutoHotkey64.exe 作为 ahk 运行环境
- 添加 InputTip.bat 文件，用于更简单的启动 InputTip.ahk
- 其他的修复和优化

## 2.35.9

- 优化了按键次数统计
  - 设置: `托盘菜单` => `更改配置` => `其他杂项` => `是否开启按键次数统计`
  - 现在，通过软件内置更新功能进行更新，按键次数也不会丢失导致从 0 重新计数
- 优化了软件更新的 GUI 显示
- 其他的修复和优化

## 2.35.8

- 优化了按键次数统计
  - 设置: `托盘菜单` => `更改配置` => `其他杂项` => `是否开启按键次数统计`
  - 现在，如果是通过以下方式导致 InputTip 重启，按键次数不会丢失导致从 0 重新计数
    - `托盘菜单` => `重启`
    - `托盘菜单` => `暂停/运行快捷键`
    - `托盘菜单` => `设置状态切换快捷键`
- 其他的修复和优化

## 2.35.7

- 使用 Rust 重写更新程序，减小 exe 程序文件大小
- 修复了更新检查可能存在的版本比对问题
- 优化了一些配置菜单文本描述
- 不再自动创建基于 `任务计划程序` 的 `InputTip.lnk` 快捷方式
  - 通过 `托盘菜单` => `开机自启动` => `【任务计划程序】` 设置，会在 `shell:startup` (开机自启动目录) 创建这个特殊的快捷方式
- 不再自动更新 `开机自启动`
  - `2.35.7` 之前的版本，每次启动时，都会去检查并重新设置 `开机自启动` 的程序路径等
  - 这是为了确保如果移动了软件所在位置，不需要重新设置 `开机自启动`
  - 但这并不合理，大多数情况下，软件所在位置不会也不应该频繁移动
  - 因此，`2.35.7` 及以上版本，如果移动了软件所在位置，需要自行重新设置 `开机自启动`
- 其他的修复和优化

## 2.35.6

- 使用 [AutoHotkey 2.0.18](https://github.com/AutoHotkey/AutoHotkey/releases/tag/v2.0.18) 重新编译，降低病毒误判概率

## 2.35.5

- 修复了 `指定窗口自动切换状态` 失效的问题
  - 在 `2.35.3` 中对于此问题的修复有所遗漏，此版本修复遗漏的情况
- 将配置菜单的字体从 `微软雅黑` 修改为 `Microsoft YaHei` (兼容性更好的字体名称)

## 2.35.4

- 优化了托盘图标的加载逻辑
  - 在 **运行** 状态时，托盘图标加载的是 `InputTipSymbol\default\favicon.png`
  - 在 **暂停** 状态时，托盘图标加载的是 `InputTipSymbol\default\favicon-pause.png`
  - 可以通过替换这两个图片来实现自定义托盘图标的效果
  - `favicon.png` 和 `favicon-pause.png` 文件不存在时，重启 InputTip 会重新生成默认的图标图片

## 2.35.3

- 修复了 `指定窗口自动切换状态` 失效的问题
  - 失效场景: 通过 `设置状态切换快捷键` 设置了 `Shift`/`LShift`/`RShift` 作为单键快捷键时
- 修正了配置菜单的文本描述错误

## 2.35.2

- 当在 `设置符号显示位置` 的 `哪些应用窗口中的符号需要显示在鼠标附近` 中选择 `在任意应用窗口中` 时，不再需要添加白名单
- 修复了更新检查的一些问题
- 在 `设置更新检查` 菜单中添加了 `立即检查更新` 按钮
- 优化一些配置菜单的文本显示

## 2.35.1

- 修复了一个变量问题

## 2.35.0

- 添加配置项 `符号的垂直偏移量的参考原点`
  - 设置: `托盘菜单` => `更改配置` => `显示形式` => `符号的垂直偏移量的参考原点`
  - 现在，图片/方块/文本符号默认显示在输入光标上方，如果希望显示在下方，建议更改此配置为 `输入光标下方`，然后修改对应的偏移量
  - 因为使用 `输入光标下方` 可以避免当窗口内容进行缩放时，符号位置的显示偏差问题([相关 issue](https://github.com/abgox/InputTip/issues/145))
- 修复了 `设置状态切换快捷键` 的以下问题

  - 当使用 `设置单键` 时，以 `LShift` 和 `RShift` 为例
  - 当设置 `LShift` 强制切换中文，`RShift` 强制切换英文时
  - 当状态为英文时，如果想要输入大写字母，按下 `LShift` + 任意字母后，会意外触发强制切换，使状态变为中文

- 添加了对符号显示的窗口边缘检测
  - 如果因为内容滚动等场景，符号的实际显示位置在窗口之外时，符号会直接隐藏
- 其他的修复和优化

## 2.34.5

- 优化了当符号显示在鼠标附近时的显示逻辑
  - 当鼠标移动到任务栏上时，符号仍然保持显示
- 优化一些配置菜单的文本描述

## 2.34.4

- 优化一些配置菜单的文本描述

## 2.34.3

- 优化了 `软件暂停`
  - `2.34.0` 中的 `软件暂停` 会取消所有 InputTip 产生的快捷键，但 `暂停/运行快捷键` 应该保留
  - 在此版本中，当软件暂停时，只会取消三个状态切换的快捷键(如果未设置就没有)
  - 而 `暂停/运行快捷键` 会被保留，再次按下时 InputTip 会恢复运行

## 2.34.2

- 修复了当 InputTip 所在路径或 exe 文件名含有空格时，自动更新失效的问题

## 2.34.1

- 修复了当使用符号显示在鼠标附近时，符号闪烁的问题
- 修复了自动更新的问题
- 其他的修复和优化

## 2.34.0

- 在 `托盘菜单` => `更改配置` => `显示形式` => `2. 显示什么类型的符号` 下方添加一个配置
  - `当鼠标悬浮在符号上时，符号是否需要隐藏`，这是一个复选框，它默认勾选
  - 如果因为鼠标悬浮在符号上，出现了符号闪烁，可以取消勾选它
- 优化了 `软件暂停`
  - `2.34.0` 之前的版本，`软件暂停` 只是暂停了线程，但是快捷键没有被取消
  - `2.34.0` 版本则会完全暂停，包括暂停线程和取消所有 InputTip 产生的快捷键
- 其他的修复和优化

## 2.33.4

- 修复 JAB 进程中的变量未引入导致的报错

## 2.33.3

- 优化字体配置
  - 现在，字体相关配置会根据系统已安装的字体，生成下拉列表自由选择或输入
  - 需要注意，下拉列表中的字体，不一定有效，你可能需要检查是否为字体全称
  - 有些名称需要去掉末尾的 `Regular`/ `Bold`/... 才会生效
- 其他的修复和优化

## 2.33.2

- 抑制了当更新检查的网络访问被拒绝时的报错
- 移除了一个不合理的特性
  - 对于显示符号的窗口，当鼠标不在此窗口中时，符号会被隐藏
  - 这是一个不合理的特性
  - 对于一些很小的窗口，如 `PowerToys Run`(`PowerToys.PowerLauncher.exe`)，这个特性反而导致许多应该显示的情况被意外隐藏

## 2.33.1

- 修复了在以下情况时，处于对应状态未隐藏的问题

  - `图片符号`: 当路径选择为空时
  - `方块符号`: 当颜色设置为空时
  - `文本符号`: 将文本设置为空时

- 改进了 `设置特殊偏移量`

  - 现在可以通过 `批量设置` 同时设置多个屏幕

- 其他的修复和优化

## 2.33.0

- `托盘菜单` 中的变化

  - 添加了 `设置符号显示位置`

    - 对于一些特别的无法正常显示符号的应用窗口，它是一个折中的解决方案

  - 更新了 `设置状态切换快捷键` 中的 `设置单键` 的按键列表
  - 更新了 `更改配置` 中的 `更多杂项`
    - 添加了对托盘菜单悬浮提示的文本模板自定义
    - 添加了按键次数统计以及文本模板自定义

- 其他的修复和优化

## 2.32.0

- 在 `托盘菜单` 中添加了 `更改用户信息`

  - 域用户需要修改用户名，才能正常使用 `开机自启动` 中的 `任务计划程序`

- 检查到新版本后的 `确认更新` 不再依赖 powershell

- 如果无法调用 powershell，依赖 `powershell` 的以下相关功能会自动禁用

  - `开机自启动` 中的 `任务计划程序`
  - `启用 JAB/JetBrains IDE 支持`

- 其他的修复和优化

## 2.31.0

- 新增

  1.  当鼠标悬浮在符号上时，符号立即隐藏
      - 此功能在 `2.28.0` 中由于存在问题被移除，现在重新添加
  2.  在 `设置输入法模式` 的 `自定义` 中，添加了 `状态码规则`、`切换码规则` 和 `以哪一种状态作为判断依据`
  3.  为符号添加了不同状态下符号的独立配置
  4.  新增了应用暂停时的软件图标

- 变动

  1. 将 `设置输入法模式` 中的 `讯飞输入法` 和 `手心输入法` 模式合并到 `自定义` 中
     - 现在只有两种输入法模式: `通用` 和 `自定义`
  2. 文本符号中所有配置独立，不再依赖方块符号中的配置
     - `2.31.0` 之前的版本，文本符号的透明度、偏移量、边框样式、背景颜色由方块符号中的相同配置决定
  3. 统一配置项的值的计算，部分之前跟随 `DPI` 缩放的配置项不再跟随 `DPI` 缩放
     - 这会导致从版本更改后符号可能会变小，你需要重新调整宽高大小
  4. 不再使用 powershell 对鼠标样式文件夹解压缩
     - 但是这也导致了 `InputTip.exe` 变大了许多，不过也只有大约 6 MB 左右

- 所有代码完成重构
- 其他的修复和优化

## 2.30.2

- 修复了在极少数情况下(如 UAC 弹窗时)，触发报错(拒绝访问)的问题
- 其他的修复和优化

## 2.30.1

- 修复了 `符号显示白名单` 添加应用进程时会在 `InputTip.ini` 中写入两次的问题
- 其他的修复和优化

## 2.30.0

- 在 `更改配置` 中的 `其他杂项` 中添加了 `实时显示当前激活的窗口进程信息`
- 为各个列表添加了个数统计
- 移除了软件内部的禁用名单
  - 禁用名单中的应用进程不是所有系统环境都有问题的，统一禁用不合理
  - 如果你仍继续使用黑名单，也应该由你自行添加
- 当选择 `使用【黑】名单` 时，会弹出警告窗口提醒
- 修复了 `设置光标获取模式` 中的一些问题
- 优化了许多菜单的显示和操作逻辑
- 其他的修复和优化

## 2.29.0

- 添加了 `设置光标获取模式`
  - 现在，你可以指定应用使用哪种光标获取模式
  - 如果所有模式都不可用，则表示在此窗口中获取不到光标位置，暂时无法解决
  - `添加 JetBrains IDE 应用` 合并到其中
    - 将 JetBrains IDE 应用添加到 `JAB` 列表中即可
- 添加了 `设置特殊偏移量`
  - 你可以指定应用在不同屏幕下的特殊偏移量
  - `设置 JetBrains 系统 IDE 的偏移量` 合并到其中
    - 由于 `设置 JetBrains 系统 IDE 的偏移量` 不好迁移，可能需要通过 `设置特殊偏移量` 重新设置
- 在 `更改配置` 中添加了 `其他杂项` 标签页
  - 其中包含配置: `所有配置菜单的字体大小`
- 其他的修复和优化

## 2.28.6

- 完善了自动切换的逻辑
- 修复了当设置快捷键切换状态后，频繁按下多次快捷键，状态切换有误的问题
- 优化了【指定窗口自动切换状态】配置菜单
  - 当添加应用进程时，如果白名单中不存在，则同步添加到白名单中
- 其他的修复和优化

## 2.28.5

- 限制同一个配置菜单只能存在一个，避免出现多个相同菜单，导致修改冲突
- 优化了部分布局和描述
- 其他的修复和优化

## 2.28.4

- 修复了当应用进程列表为空时，双击列表会出现意外行为导致错误的问题
- 优化了部分布局和描述

## 2.28.3

- 修复了配置修改没有实时生效的问题
- 限制更新检测可设置的时间范围，避免程序错误

## 2.28.2

- 修复了白名单机制对于 InputTip 自身创建的窗口无效的问题
- 修复了点击 `托盘菜单` 中的 `暂停/运行` 时的问题
- 修复和优化了部分配置菜单的布局和描述

## 2.28.1

- 修复黑名单机制的版本迁移
  - 对于旧版本更新到新版本，还是沿用黑名单机制，白名单机制需要重新设置
- 将 `托盘菜单` 中的 `忽略更新` 修改 `设置更新检测`
- 修复虚拟机系统环境中，获取目录路径错乱的问题
- 修复设置状态自动切换时，意外写入的一个配置项 app_add

## 2.28.0

> [!warning]
>
> `v2.28.0` 会默认使用白名单机制

- 托盘菜单中的配置项变化
  - `暂停软件运行` 修改为 `暂停/运行`
  - `设置快捷键` => `设置状态切换快捷键`
  - `设置自动切换` => `指定窗口自动切换状态`
  - `符号显示黑名单` => `符号显示黑/白名单`
    - 添加了白名单机制
  - 添加了 `暂停/运行快捷键`，可以通过它设置快捷键，快速暂停和运行 `InputTip`
- 优化了 `设置输入法模式`
  - 将 `模式1 - 通用` 和 `模式2 - 通用` 合并为 `通用模式`
  - 现在，可以配置获取输入法状态的超时时间，也可以自定义状态码和切换码
  - 理论上来说，你可以通过自定义状态码和切换码，不再局限于中英文状态提示，而是任意两种语言状态提示
- 修改了 `无操作时，符号在多少毫秒后隐藏` 这个配置的运行逻辑。
  - 之前，符号隐藏后，**下次键盘操作** 或 **窗口切换** 时会再次显示符号，这有些不合理。
  - 现在，符号隐藏后，**下次键盘操作** 或 **点击鼠标左键** 时会再次显示符号
- 移除了方块符号自定义边框样式的功能
  - 渲染效果差，不稳定。
  - 建议使用 `图片符号` 代替，自己制作带边框的符号。
- 对于需要添加应用进程的菜单，优化了界面布局
  - 现在添加进程和移除进程在同一个 Tab 页中，查看操作更方便
  - 添加显示更多按钮，可以获取到更多的正在运行的进程进行快捷添加，包含后台运行的、无窗口或隐藏窗口的进程
- 优化了配置菜单
- 不再通过重启软件来加载最新配置
  - 部分符号没有跟随输入法状态更新的情况，是因为软件重启导致的。
- 现在所有配置修改，都会实时生效，能立即看到最新效果，更改配置更方便
- 调整源代码文件目录结构，代码重构
- 优化性能
- 其他的修复和优化

## 2.27.2

- 修复了运行 `InputTip.exe` 时，任务栏的一些 bug
- 其他的修复和优化

## 2.27.0

- 鼠标样式不再通过打开文件夹去设置，而是会动态的生成下拉列表进行选择，图片符号同理。
  - 这会导致鼠标样式和图片符号会重置为默认，请重新自定义
  - 默认的图片符号已经修改，如果想使用新的默认图片符号，请删除 `InputTipSymbol\default` 目录并重启 `InputTip.exe`
- 修改了部分配置项的默认值
- 其他的修复和优化

## 2.26.5

- 修复了在 JetBrains 系列 IDE 中，图片符号不显示的问题
- 其他的修复和优化

## 2.26.2

- 修复了直接通过项目仓库运行 `InputTip.ahk` 的一些使用问题
- 其他的修复和优化

## 2.26.1

- 修复了当使用 `无操作时，符号在多少毫秒后隐藏` 这个配置后，意外导致 CPU 占用过高的问题

## 2.26.0

- 在 `更改配置` 中添加 `每多少毫秒后更新符号的显示位置和状态` 配置
- 在获取光标位置的方法中，使用更多的方法兜底
- 修正部分变量命名拼写错误

## 2.25.0

- 添加多种设置开机自启动的方式
  - 任务计划程序
  - 快捷方式
  - 注册表
- 修改了 `设置输入法模式` 中的模式名称，使其更容易理解
  - `模式1` => `模式1 - 通用`
  - `模式2` => `模式2 - 通用`
  - `模式3` => `模式3 - 讯飞输入法`
  - `模式4` => `模式4 - 手心输入法`
- 修复当使用 `暂停软件运行` 时，符号可能有残留的问题

## 2.24.1

- 修复了 `InputTip.exe` 运行后，相关文件无法正常释放出来的问题

## 2.24.0

- 在托盘菜单中，添加 `暂停软件运行`、 `打开软件所在目录` 和 `添加 JetBrains IDE 应用`
- 将 `InputTipCursor` 下的 `CN_Default`、`EN_Default`、`Caps_Default` 放入 `default` 目录下
- JetBrains IDE 支持所需要的 `InputTip.JAB.JetBrains.exe` 现在和 `InputTip.exe` 放在同一目录下，不再放入 `InputTipSymbol` 目录中
- 修复了当电脑没有连接电源时，无法正常自启动的问题
- 其他的修复和优化

## 2.23.0

- 在托盘菜单的 `设置快捷键` 中，添加 `设置单键`
  - 比如: 你可以将 `LShift`(左侧的 `Shift`) 设置为切换中文， `RShift`(右侧的 `Shift`) 设置为切换英文

## 2.22.4

- 将托盘菜单中的 `指定隐藏符号的应用` 修改为 `符号显示黑名单`
  - `指定隐藏符号的应用` 这个名字有点难以理解，换个更容易理解的名字
- 调整了托盘菜单中配置项的顺序
- 其他的修复和优化

## 2.22.0

- 兼容 JetBrains IDE 系列产品
  - [如何在 JetBrains IDE 系列产品中使用 `InputTip`](../../readme.md#如何在-jetbrains-系列-ide-中使用-inputtip)
  - [通过 AutoHotkey 官方论坛中 Descolada 大佬给出的解决方案实现](https://www.autohotkey.com/boards/viewtopic.php?t=130941#p576439)

## 2.21.7

- 此版本将 `AutoHotkey` 从 `v2.1-alpha` 退回到 `v2.0`

## 2.21.0

- `InputTip.exe` 运行后，会自动生成一个 `InputTip.lnk` 的快捷方式
  - 通过运行这个快捷方式来运行 `InputTip.exe`,就不会出现 `UAC` 权限提示弹窗了
  - 你可以将这个快捷方式复制到任何地方，你的桌面上、自动化流程中...
  - 如果此快捷方式意外被删除，你又需要它，请运行 `InputTip.exe` 来重新生成它
  - 如果此快捷方式无法正常运行，请删除它，然后运行 `InputTip.exe` 来重新生成它
- 同时，也更改了实现 `开机自启动` 的方式
  - 不再使用修改注册表的方式，已经修改了注册表的，也会在这个版本从注册表中移除
  - 现在，当你勾选了托盘菜单中的 `开机自启动` 时，会自动将 `InputTip.lnk` 这个快捷方式复制一份到开机自启动目录中
  - 如果开机没有正常自启动，请取消并重新勾选 `开机自启动`
  - 因此，`开机自启动` 也不会再出现 `UAC` 权限提示弹窗了
- 优化了 `更改配置` 界面
- 其他的修复和优化

## 2.20.0

- 现在，当第一次启动 `InputTip` 时，会显示一个弹窗，需要用户确认是否修改鼠标样式
  - 之前的版本，没有任何提示，直接修改了用户的鼠标样式，这确实让部分用户感到疑惑
  - 虽然根据输入法状态修改鼠标样式是 `InputTip` 的核心功能之一，但部分用户只是需要符号显示
- 这里的第一次启动指的是还没有产生 `InputTip.ini` 文件
- 所以只有一开始就使用 `2.20.0` 及以上版本的用户才有效

## 2.19.0

- 在托盘菜单中添加 `忽略更新`
- 当有更新弹窗时，在更新弹窗底部添加一个 `忽略更新` 按钮

## 2.18.3

- 统一命名，将 `文本字符` 更名为 `文本符号`
- 将 `指定隐藏方块符号的应用` 更名为 `指定隐藏符号的应用`

## 2.18.0

- 添加了 `图片符号`，通过图片加载的方式自定义符号
  - 由于通过 `AutoHotkey` 的 `Gui` 去画符号，限制很大，也不够灵活
  - 而通过图片加载的方式，更加的 DIY，更加的自由、灵活
  - `InputTip` 只需要负责加载图片，至于什么样的图片，由用户自定义
    - 你可以用自己喜欢的符号图片
    - 你也可以自己去制作一个符号图片
- 默认使用的是圆点符号图片
  - 图片显示的偏移量、大小、自动隐藏等都应该在 `更改配置` 中的 `图片符号` 页进行配置
- 由于这种方式最灵活，显示效果也不错，就默认启用了
  - 启用它后，方块符号就不显示了，如果想继续使用方块符号，你需要在 `更改配置` 中将 `显示形式` 页中的 `是否显示图片符号` 设置为 `0`

## 2.17.5

- 一个特别的修复版本
- 理论上，此版本后，应该不会再出现崩溃、自动输入、自动删除、闪退等意外现象了

## 2.17.0

- 移除托盘菜单中的 `设置特殊软件`
  - 将其中的 `隐藏输入法状态方块符号提示` 提取到外部，成为一级菜单，更名为 `指定隐藏方块符号的应用`
  - 至于其中的 `隐藏中文英状态方块符号提示`，这个很鸡肋，基本无用，就直接移除了
- 其他的修复和优化

## 2.16.0

- 为方块符号添加了一个配置项 `方块符号在多少毫秒后隐藏`

  - 默认为 `0`，表示不隐藏，实时显示
  - 当值不为 `0`，则此值被认为是指定的毫秒时间，在这个时间后，方块符号将会隐藏
  - 方块符号隐藏后，在当前软件窗口的任何鼠标操作都不会再显示方块符号，直到下一次键盘按键操作或者切换到其他软件窗口才会重新显示

- 将托盘菜单中的 `设置方块符号边框样式` 合并到 `更改配置` 中
- 其他的修复和优化

## 2.15.0

- 解决了多屏幕下的坐标偏差

  - 不过也有限制: 副屏幕的缩放率和主屏幕需要保持一致
  - 比如: 主屏幕缩放率 `200%`，副屏幕缩放率也必须是 `200%`

- 移除了托盘菜单中的 `设置特殊偏移量`
  - 现在多屏幕的坐标偏差已经解决，不再需要它
  - 对于缩放率不一致的情况下，偏差大小变化没有规律，也不是一个固定值，即使设置了它，也没有作用。

## 2.14.0

- 将托盘菜单中的 `设置鼠标样式` 和 `下载鼠标样式包` 合并到 `更改配置` 中
- 优化 `更改配置` 的菜单界面，现在通过不同的 Tab 菜单来区分不同的配置项
- 添加显示字符相关的配置
  - 在 `更改配置中`，将 `是否显示字符` 修改为 `1`，就会在方块中显示状态字符，默认为 `中`/`英`/`大`
  - 详细的配置项在 `更改配置` 中的 `文本符号` 菜单中查看、修改
  - 添加了 `文本符号` 配置后，`InputTip` v1 版本基本无用了，所以 v1 版本应该不再更新了
- 修复了在 微软 OneNote 中的问题
  - 不过，修复后，有时候会获取不到窗口相关光标位置信息，符号也就无法显示了
  - 如果是这种情况，就没有办法了，只能暂时依赖鼠标样式的改变了

## 2.13.0

- 在托盘菜单中添加 `设置强制切换快捷键`
  - 个人更推荐 `设置自动切换`，进入不同应用，自动切换状态，不需要额外的快捷键
  - 因为 `InputTip` 是为了减少输入法状态切换的按键操作，`设置强制切换快捷键` 反而会增加按键操作
  - 不过，部分场景中可能也确实需要这样的功能，所以还是决定添加它
- 其他的修复和优化

## 2.12.0

- 在`设置方块符号边框样式` 中，添加了 `自定义边框样式`
- 更改配置时，配置菜单中不再显示配置项的名称，而是显示中文描述
- 其他的修复和优化

## 2.11.0

- 在托盘菜单中添加 `设置方块符号边框样式`，有几种边框样式可以选择
  - 个人感觉 `样式1` 比较不错，就作为默认值了，如果喜欢以前没有边框的版本，选择 `去掉边框样式` 即可

## 2.10.0

- 在托盘菜单中添加 `设置自动切换`，现在可以设置指定应用自动切换到英文/中文/大写锁定状态
- 其他的修复和优化

## 2.9.0

- 在托盘菜单中添加 `设置特殊偏移量`，用于解决在缩放大于 `125%` 的副屏上可能导致的显示位置误差
- 其他的修复和优化

## 2.8.0

- 添加配置修改校验，避免错误配置导致程序报错
- 其他的修复和优化

## 2.7.2

- 将 `模式2` 作为默认模式
  - 一些 `模式1` 无法识别的窗口，`模式2` 可以识别
- 不是一开始就使用 `2.7.2` 及以上版本的，也可以切换到 `模式2` 尝试一下
  - 如果切换到 `模式2` 有效，就推荐一直使用 `模式2`

## 2.7.1

- 由于不是所有的输入法都无法在记事本和 everything 中获取到中英文状态
- 直接把 `notepad.exe,everything.exe` 赋值给 `app_hide_CN_EN` 配置是不合理的
- 应该由用于自己去设置 `app_hide_CN_EN` 配置项
  - 通过底部任务栏右侧的 `InputTip` 托盘图标，鼠标右键点击它，选择 `设置特殊软件`
- 所以现在将 `app_hide_CN_EN` 配置的默认值更改为空
- 不是一开始就使用 `2.7.1` 及以上版本的，你可以先去除掉 `notepad.exe,everything.exe`这个值，检查一下是否可以正常工作

## 2.7.0

- 更改了配置项
  - `window_no_display` => `app_hide_CN_EN`
  - `window_no_display` 的值会复制给 `app_hide_CN_EN`
- 添加了一个配置项:
  - `app_hide_state`
- 在任务栏底部右侧的软件托盘菜单中添加了一个子菜单 `设置特殊软件`
  - 可以在它的子项中，快速的设置 `app_hide_CN_EN` 和 `app_hide_state`
- 提高了处理逻辑的阈值时间，解决有时状态更新不及时的问题
- 其他的修复和优化

## 2.6.0

- 添加 `模式4` 以兼容手心输入法

## 2.5.0

- 提高了处理逻辑的阈值时间，解决有时状态更新不及时、方块卡在原地的问题
- 修改两个默认配置的值
  - `offset_x`: `15` => `5`
  - `offset_y`: `-15` => `0`
  - 正常来说，这样的默认值可能更合理一些
  - 你甚至可以将 `symbol_height` 高度设置为光标的高度，将 `symbol_width` 调小，你就可以获得一个光标形状的符号，而不是方块。
- 修改了模式切换的菜单显示
- 其他的修复和优化

## 2.4.0

- 通过模式切换兼容更多输入法，包括百度、小狼毫(rime)、谷歌等输入法
- 修改了菜单文字显示的效果，减少了字重，减少了字体显示问题
- 由于不同的网络环境，可能无法访问到 [官网](https://inputtip.abgox.com)，所以给一些可能访问不到的地址，添加 `Github` 和 `Gitee` 地址
- 其他的修复和优化

## 2.3.0

- 添加了一个方块符号，在输入光标附近根据输入法状态改变颜色，作为除了鼠标以外的另一个提示方式
- 添加了许多的配置项
- 添加了自动更新机制
  - 当启动 `InputTip.exe` 时，会异步的检查更新，如果有新版本，会提示确认更新
  - 如果确认更新就会自动下载新版本替代旧版本并重启
- 其他的修复和优化

## 2.2.0

- 当开始大写锁定时，鼠标样式将会切换为绿色(默认)
  - 你也可以自定义它
- 此版本没有考虑到版本迁移的问题
  - 如果直接将 2.2.0 的 exe 文件覆盖 2.1.0 的 exe 文件，可能会导致应用无效
  - 因为 InputTipCursor 需要新添加两个目录 Caps 和 Caps_Default
  - 建议先将 InputTipCursor 目录移动到别处，让 InputTip.exe 重新创建此目录
- 其他的修复和优化

## 2.1.0

- 添加鼠标样式的设置
- 延长了轮询间隔
- 添加了一个可选的鼠标样式文件 Pen
- 改进和修复了一些其他问题

## 2.0.0

- v1 版本中通过显示内容的方式来提示当前输入法的中英文状态，这在某些时候会觉得有些碍眼
- v2 版本中不再使用此方式，而是通过两套光标样式，切换输入法状态时，光标样式会随之切换
