Skip to content

Commit

Permalink
Merge pull request #135 from abgox/v2
Browse files Browse the repository at this point in the history
feat: 更新版本 2.31.0
  • Loading branch information
abgox authored Jan 15, 2025
2 parents 1edd942 + 4d8a7d8 commit 6c2cfc6
Show file tree
Hide file tree
Showing 74 changed files with 3,029 additions and 2,299 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
InputTipCursor
InputTipSymbol
124 changes: 57 additions & 67 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,13 @@

---

> [!NOTE]
> [!Tip]
>
> `托盘菜单` 指的是在电脑底部的任务栏右侧的 `InputTip` 软件托盘菜单
> `托盘菜单` 指的是在底部任务栏右边的 `InputTip` 软件托盘菜单
### 介绍

- 基于 `AutoHotKey` 编写
- 使用 `AutoHotKey` 编写,仅 Windows 系统可用
- 一个实时的输入法状态(中文/英文/大写锁定)提示工具

- 根据输入法状态改变鼠标样式
Expand All @@ -42,7 +42,7 @@
- 默认中文状态为 **红色**,英文状态为 **蓝色**,大写锁定为 **绿色**
-[更多已适配的鼠标样式](https://inputtip.pages.dev/download/extra) 中有提供它们的左手镜像版本
- 根据输入法状态在输入光标附近显示不同的 [符号](#关于符号)
- 默认使用 [白名单机制](https://inputtip.pages.dev/FAQ/about-white-list/)
- 默认使用 [白名单机制](https://inputtip.pages.dev/FAQ/white-list/)
- 切换不同应用窗口时,自动切换指定的输入法状态(中文/英文/大写锁定)
- 快捷键强制切换输入法状态
- 详尽的自定义配置菜单
Expand Down Expand Up @@ -76,7 +76,7 @@

### 使用

> [!NOTE]
> [!Tip]
>
> - 因为以下原因,可能无法正常运行 `InputTip.exe`
> - 没有管理员权限
Expand All @@ -92,7 +92,7 @@
> 3. 直接运行项目中的 `InputTip.ahk` 文件
> - `src\v2\InputTip.ahk`
> [!warning]
> [!Warning]
>
> - 软件中使用到了 `powershell`,请确保你的电脑环境中有 `powershell`
> - 现在的 Windows,都内置了 `powershell`,但总有一些特殊环境没有,可能导致运行报错
Expand Down Expand Up @@ -157,8 +157,8 @@
2. 安装 [AutoHotkey v2](https://www.autohotkey.com/)
- 这一步完成后,你也可以直接运行 `src\v2\InputTip.ahk` 来使用 `InputTip`
3. 打开 `AutoHotKey Dash`
4. 点击左侧的 `Compile`,等待编译器下载完成
5. 重新点击左侧的 `Compile`
4. 点击左边的 `Compile`,等待编译器下载完成
5. 重新点击左边的 `Compile`
6.`src\v2\InputTip.ahk` 拖入弹出的编译窗口中
7. 点击左下角的 `Convert` 完成编译
8. 运行编译后的 `InputTip.exe`
Expand Down Expand Up @@ -187,7 +187,7 @@

> [通过 AutoHotkey 官方论坛中 Descolada 大佬给出的解决方案实现](https://www.autohotkey.com/boards/viewtopic.php?t=130941#p576439)
> [!Note]
> [!Tip]
>
> 如果有其他 JAB 程序,也可以按照此步骤进行设置
Expand All @@ -210,7 +210,7 @@

5. 如果仍未生效,请重启 InputTip 或重启系统

> [!TIP]
> [!Tip]
> 如果有多块屏幕,副屏幕上可能有坐标偏差,需要通过 `托盘菜单` => `设置特殊偏移量` 手动调整
### 关于符号
Expand All @@ -220,23 +220,25 @@
- `InputTip.exe` 启动后,会在同级目录下生成 `InputTipSymbol` 目录,其中包括 `default` 文件夹

- `default` 文件夹中包含了默认的图片符号
-`托盘菜单``更改配置` => `显示形式` => 第 2 个显示配置,选择 `显示图片符号` 时,会在输入光标附近显示对应的图片符号
- 你也可以将自己喜欢的图片符号,或者自己制作图片符号,放入 `InputTipSymbol` 目录下(图片必须是 `.png` 格式)
-`托盘菜单``更改配置` => `显示形式` => `2. 在输入光标附近显示什么类型的符号`,选择 `显示图片符号` 时,会在输入光标附近显示对应的图片符号
- 你也可以将自己喜欢的图片符号,或者自己制作图片符号,放入 `InputTipSymbol` 目录下
- 限制: 图片必须是 `.png` 格式
- [更多的符号图片](https://inputtip.pages.dev/download/extra)
- 然后,点击 `托盘菜单` => `更改配置` => `图片符号`,在对应的下拉列表中选择正确的图片路径
- 如果留空,则不会显示对应状态的图片符号

#### 方块符号

-`托盘菜单``更改配置` => `显示形式` => 第 2 个显示配置,选择 `显示方块符号` 时,会在输入光标附近显示不同颜色的方块符号
-`托盘菜单``更改配置` => `显示形式` => `2. 在输入光标附近显示什么类型的符号`,选择 `显示方块符号` 时,会在输入光标附近显示不同颜色的方块符号
- 默认中文状态为**红色**,英文状态为**蓝色**,大写锁定为**绿色**
- 方块符号相关的配置: `托盘菜单` => `更改配置` => `方块符号`
- 当其中的方块符号的颜色设置修改为空时,则不会显示该状态的方块符号
- 比如: 你只希望在中文状态下显示方块符号,那么就将 `英文状态时方块符号的颜色``大写锁定时方块符号的颜色` 的值都设置为空
- 如果选择 `显示文本符号`,方块符号的颜色为空会导致文本符号无法显示

#### 文本符号

-`托盘菜单``更改配置` => `显示形式` => 第 2 个显示配置,选择 `显示文本符号` 时,会在输入光标附近显示对应的文本符号
-`托盘菜单``更改配置` => `显示形式` => `2. 在输入光标附近显示什么类型的符号`,选择 `显示文本符号` 时,会在输入光标附近显示对应的文本符号
- 默认中文状态为 ``,英文状态为 ``,大写锁定为 ``
- 文本符号相关的配置: `托盘菜单` => `更改配置` => `文本符号`
- 当其中的文本字符设置修改为空时,则不会显示该状态的文本符号
Expand All @@ -246,10 +248,7 @@

> [!Tip]
>
> 也可以直接下载 [已经适配的鼠标样式](https://inputtip.pages.dev/download/extra) 来使用
> [!Tip]
>
> - 也可以直接下载 [已经适配的鼠标样式](https://inputtip.pages.dev/download/extra) 来使用
> - `InputTip.exe` 启动后,会在同级目录下生成 `InputTipCursor` 目录,其中包括 `default` 文件夹
> - `default` 用于存放中文/英文/大写锁定状态的 **默认** 鼠标样式
Expand Down Expand Up @@ -281,7 +280,7 @@
| Person | 人员选择 |
| Pen | 手写 |

- 详情参考 [关于光标(游标)](https://learn.microsoft.com/windows/win32/menurc/about-cursors)
- 详情参考 [微软文档: 关于光标(游标)](https://learn.microsoft.com/windows/win32/menurc/about-cursors)

2. 点击 `托盘菜单` => `更改配置` => `鼠标样式` => 在下拉列表中选择对应文件夹目录路径

Expand All @@ -295,56 +294,47 @@
### 兼容情况

> [!NOTE]
>
> 这里的兼容情况也仅供参考,实际情况可能有所不同,你应该自行尝试
>
> - 一般使用 `通用模式`,如果是 [讯飞输入法](https://srf.xunfei.cn/)[手心输入法](https://www.xinshuru.com/),直接使用对应模式即可
>
> - 否则,使用 `自定义`
#### 输入法兼容情况

> [!Tip]
>
> - [输入法模式的已知问题](https://inputtip.pages.dev/FAQ/#输入法模式的已知问题)
- 已知可用的输入法(通过模式切换兼容)

- `通用模式`(默认):

- [微信输入法](https://z.weixin.qq.com/)
- [搜狗输入法](https://shurufa.sogou.com/)
- [搜狗五笔输入法](https://wubi.sogou.com/)
- [QQ 输入法](https://qq.pinyin.cn/)
- [百度输入法](https://shurufa.baidu.com/)
- 微软
- 微软拼音
- 微软五笔
- 微软仓颉
- [冰凌输入法](https://icesofts.com/)
> 现在,InputTip 使用【通用】和【自定义】模式兼容输入法,默认使用【通用】模式
- `【通用】模式`

- [微信输入法](https://z.weixin.qq.com/)
- [搜狗输入法](https://shurufa.sogou.com/)[搜狗五笔输入法](https://wubi.sogou.com/)
- [QQ 输入法](https://qq.pinyin.cn/)
- [百度输入法](https://shurufa.baidu.com/)
- 微软拼音,微软五笔,微软仓颉
- [冰凌输入法](https://icesofts.com/)
- 小鹤音形输入法
- 需要使用 [多多输入法生成器](https://duo.ink/ddimegen/ddimegen-desc.html) 生成
- 使用 [多多输入法生成器](https://duo.ink/ddimegen/ddimegen-desc.html) 生成的输入法都可用
- [小小输入法](http://yongim.ysepan.com/)
- [影子输入法](https://gitee.com/orz707/Yzime)
- 需要关闭影子输入法中的 `tsf`
- 在键盘布局中,选择一个能正常识别状态的输入法(建议选择微信输入法、搜狗输入法等)
- 然后正常使用影子输入法即可
- [可可五笔](https://suke.kim/)
- 谷歌输入法

- `【自定义】模式`

- 一个万能的模式,需要根据实际情况设置状态码(规则)和切换码(规则)
- 详情参考: [关于【自定义】模式](https://inputtip.pages.dev/FAQ/custom-input-mode)
- 可以通过 `设置输入法模式` => `自定义` 使用以下已知可用的配置:
- [小鹤音形](https://flypy.com/download/)
- 经过测试,`v10.11.4` 版本中,在 `切换码数字`的输入框中填入 `257` 即可
- [小狼毫(rime)输入法](https://rime.im/download/)
- 小鹤音形输入法
- 需要使用 [多多输入法生成器](https://duo.ink/ddimegen/ddimegen-desc.html) 生成
- 使用 [多多输入法生成器](https://duo.ink/ddimegen/ddimegen-desc.html) 生成的输入法都可用
- [小小输入法](http://yongim.ysepan.com/)
- [影子输入法](https://gitee.com/orz707/Yzime)
- 需要关闭影子输入法中的 `tsf`
- 在键盘布局中,选择一个能正常识别状态的输入法(建议选择微信输入法、搜狗输入法等)
- 然后正常使用影子输入法即可
- [可可五笔](https://suke.kim/)
- 谷歌输入法

- `讯飞输入法`
- 如果正在使用 [讯飞输入法](https://srf.xunfei.cn/),你需要选择它
- `手心输入法`
- 如果你正在使用 [手心输入法](https://www.xinshuru.com/),你需要选择它
- 兼容性一般,因为获取到的输入法状态可能有误,导致基于此的相关功能都可能有问题。
- `自定义`
- 一个万能的模式,需要根据实际情况设置状态码和切换码
- 详情参考: [关于设置输入法模式中的自定义](https://inputtip.pages.dev/FAQ/about-input-mode-custom)

- 如何进行模式切换
1. 运行 `InputTip.exe` 后,在底部任务栏右侧找到软件托盘图标
2. `鼠标右击` 软件托盘图标
3. 点击 `设置输入法模式` => `1. 当前输入法模式`
4. 选择一个可用的模式
- 经过测试,`v0.16.1` 版本中,勾选 `切换码规则` 中的 `使用偶数` 即可
- [讯飞输入法](https://srf.xunfei.cn/)
- 经过测试,`v3.0` 版本中,勾选 `状态码规则` 中的 `使用奇数` 即可
- [手心输入法](https://www.xinshuru.com/)
- 经过测试,`v3.1` 版本中,在 `切换码数字`的输入框中填入 `1` 即可
- 兼容性一般,因为获取到的输入法状态可能有误,导致基于此的相关功能都可能有问题。

#### [应用窗口兼容情况](https://inputtip.pages.dev/FAQ/support-app-list)

### 参考项目

Expand Down
38 changes: 38 additions & 0 deletions src/v2/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,44 @@

- 没有特别说明的版本都是修复问题

## 2.31.0

> [!Tip]
>
> 所有代码完成重构
- 新增

1. 当鼠标悬浮在符号上时,符号立即隐藏

- 此功能在 `2.28.0` 中由于存在问题被移除,现在重新添加

2.`设置输入法模式``自定义` 中,添加了 `状态码规则``切换码规则``以哪一种状态作为判断依据`

3. 为符号添加了不同状态下符号的独立配置

- 变动

1.`设置输入法模式` 中的 `讯飞输入法``手心输入法` 模式合并到 `自定义`

- 现在只有两种输入法模式: `通用``自定义`

2. 文本符号中所有配置独立,不再依赖方块符号中的配置

- `2.31.0` 之前的版本,文本符号的透明度、偏移量、边框样式、背景颜色由方块符号中的相同配置决定

3. 统一配置项的值的计算,部分之前跟随 `DPI` 缩放的配置项不再跟随 `DPI` 缩放

- 这会导致从版本更改后符号可能会变小,你需要重新调整宽高大小

4. 减少了对 powershell 的依赖
- 现在,如果你不使用以下两个功能,就不会因为 powershell 的任何问题报错
- `启用 JAB/JetBrains IDE 支持`
- `开机自启动` 中的 `任务计划程序`
- 但是这也导致了 `InputTip.exe` 变大了许多,不过也只有大约 6 MB 左右

- 其他的修复和优化

## 2.30.2

- 修复了在极少数情况下(如 UAC 弹窗时),触发报错(拒绝访问)的问题
Expand Down
9 changes: 5 additions & 4 deletions src/v2/InputTip.JAB.JetBrains.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

#NoTrayIcon
;@AHK2Exe-SetName InputTip.JAB
;@AHK2Exe-SetDescription InputTip(JAB 进程) - 一个输入法状态(中文/英文/大写锁定)提示工具
;@AHK2Exe-SetDescription InputTip(JAB 进程) - 一个输入法状态提示工具

#Include .\utils\IME.ahk
#Include .\utils\ini.ahk
Expand All @@ -15,7 +15,7 @@ needSkip(exe_str) {
}

returnCanShowSymbol(&left, &top) {
GetCaretPosFromJetBrains(&left, &top)
GetCaretPosFromJAB(&left, &top)
try {
left += app_offset.%exe_name%.%isWhichScreen(screenList).num%.x
top += app_offset.%exe_name%.%isWhichScreen(screenList).num%.y
Expand All @@ -27,13 +27,14 @@ returnCanShowSymbol(&left, &top) {

/**
* Gets the position of the caret with UIA, Acc or CaretGetPos.
* Credit: plankoe (https://www.reddit.com/r/AutoHotkey/comments/ysuawq/get_the_caret_location_in_any_program/)
* @link https://www.reddit.com/r/AutoHotkey/comments/ysuawq/get_the_caret_location_in_any_program/
* @link https://www.autohotkey.com/boards/viewtopic.php?t=130941#p576439
* @param X Value is set to the screen X-coordinate of the caret
* @param Y Value is set to the screen Y-coordinate of the caret
* @param W Value is set to the width of the caret
* @param H Value is set to the height of the caret
*/
GetCaretPosFromJetBrains(&X?, &Y?, &W?, &H?) {
GetCaretPosFromJAB(&X?, &Y?, &W?, &H?) {
static JAB := InitJAB() ; Source: https://github.com/Elgin1/Java-Access-Bridge-for-AHK
if JAB && (hWnd := WinExist("A")) && DllCall(JAB.module "\isJavaWindow", "ptr", hWnd, "CDecl Int") {
if JAB.firstRun
Expand Down
Binary file modified src/v2/InputTip.JAB.JetBrains.exe
Binary file not shown.
Loading

0 comments on commit 6c2cfc6

Please sign in to comment.