Skip to content

Commit

Permalink
feat: 更新版本 2.32.0
Browse files Browse the repository at this point in the history
  • Loading branch information
abgox committed Jan 16, 2025
1 parent 726cada commit 36589f2
Show file tree
Hide file tree
Showing 27 changed files with 288 additions and 177 deletions.
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
InputTipCursor
InputTipSymbol
**/InputTipCursor/default
**/InputTipSymbol/default
test/**
25 changes: 16 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@
### 介绍

> [!Tip]
>
> QQ 反馈交流群: [451860327](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=ZfHFP_gIMyY6kZvqRmJhrsMlvnLDjLf6&authKey=lXo50SvLgudu%2BettInNZdb2OXGjs%2BxsoqsKIB88Vcq%2FjMb9uEW5thwU5Nm85KNX4&noverify=0&group_code=451860327)
- 使用 `AutoHotKey` 编写,仅 Windows 系统可用
- 一个实时的输入法状态(中文/英文/大写锁定)提示工具

Expand Down Expand Up @@ -324,15 +328,18 @@
- 一个万能的模式,需要根据实际情况设置状态码(规则)和切换码(规则)
- 详情参考: [关于【自定义】模式](https://inputtip.pages.dev/FAQ/custom-input-mode)
- 可以通过 `设置输入法模式` => `自定义` 使用以下已知可用的配置:
- [小鹤音形](https://flypy.com/download/)
- 经过测试,`v10.11.4` 版本中,在 `切换码数字`的输入框中填入 `257` 即可
- [小狼毫(rime)输入法](https://rime.im/download/)
- 经过测试,`v0.16.1` 版本中,勾选 `切换码规则` 中的 `使用偶数` 即可
- [讯飞输入法](https://srf.xunfei.cn/)
- 经过测试,`v3.0` 版本中,勾选 `状态码规则` 中的 `使用奇数` 即可
- [手心输入法](https://www.xinshuru.com/)
- 经过测试,`v3.1` 版本中,在 `切换码数字`的输入框中填入 `1` 即可
- 兼容性一般,因为获取到的输入法状态可能有误,导致基于此的相关功能都可能有问题。

- 选择 `英文状态` 作为判断依据( `中文状态` 则相反)

- [小鹤音形](https://flypy.com/download/)
- 经过测试,`v10.11.4` 版本中,在 `切换码数字`的输入框中填入 `257` 即可
- [小狼毫(rime)输入法](https://rime.im/download/)
- 经过测试,`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
35 changes: 18 additions & 17 deletions src/v2/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,42 +2,43 @@

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

## 2.31.0
## 2.32.0

> [!Tip]
>
> 所有代码完成重构
-`托盘菜单` 中添加了 `更改用户信息`

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

- 检查到新版本后的 `确认更新` 不再依赖 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 的依赖
- 现在,如果你不使用以下两个功能,就不会因为 powershell 的任何问题报错
- `启用 JAB/JetBrains IDE 支持`
- `开机自启动` 中的 `任务计划程序`
4. 不再使用 powershell 对鼠标样式文件夹解压缩
- 但是这也导致了 `InputTip.exe` 变大了许多,不过也只有大约 6 MB 左右

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

## 2.30.2
Expand Down
2 changes: 1 addition & 1 deletion 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 Down
Binary file modified src/v2/InputTip.JAB.JetBrains.exe
Binary file not shown.
26 changes: 12 additions & 14 deletions src/v2/InputTip.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
;@AHK2Exe-SetName InputTip
;@Ahk2Exe-UpdateManifest 1
;@AHK2Exe-SetDescription InputTip - 一个输入法状态提示工具
A_IconTip := "当前状态: 【运行中】`nInputTip - 一个输入法状态提示工具"

#Include .\utils\ini.ahk
#Include .\utils\IME.ahk
Expand All @@ -16,9 +15,13 @@ A_IconTip := "当前状态: 【运行中】`nInputTip - 一个输入法状态提

filename := SubStr(A_ScriptName, 1, StrLen(A_ScriptName) - 4)
fileLnk := filename ".lnk"
fileDesc := "InputTip - 一个输入法状态提示工具"
A_IconTip := "【运行中】" fileDesc

; 注册表: 开机自启动
HKEY_startup := "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run"
; 是否有 powershell
has_powershell := 1

gc := {
init: 0,
Expand All @@ -30,6 +33,8 @@ gc := {
startupGui: "",
; 设置更新检查
checkUpdateGui: "",
; 更改用户信息
updateUserGui: "",
; 设置输入法模式
inputModeGui: "",
; 设置光标获取模式
Expand All @@ -46,6 +51,7 @@ gc := {
windowToggleGui: "",
; 设置特殊偏移量
appOffsetGui: "",
; 设置指定应用的特殊偏移量
offsetGui: "",
; 启用 JAB/JetBrains IDE 支持
enableJABGui: "",
Expand All @@ -61,26 +67,18 @@ gc := {
}
}

checkIni() ; 检查配置文件

userName := readIni("userName", A_UserName, "UserInfo")

if (A_IsCompiled) {
favicon := A_ScriptFullPath
; 生成特殊的快捷方式,它会通过任务计划程序启动
if (!FileExist(fileLnk)) {
FileCreateShortcut("C:\WINDOWS\system32\schtasks.exe", fileLnk, , "/run /tn `"abgox.InputTip.noUAC`"", , favicon, , , 7)
}

; 生成任务计划程序
try {
Run('powershell -NoProfile -Command $action = New-ScheduledTaskAction -Execute "`'\"' A_ScriptFullPath '\"`'";$principal = New-ScheduledTaskPrincipal -UserId "' A_UserName '" -LogonType ServiceAccount -RunLevel Highest;$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable -DontStopOnIdleEnd -ExecutionTimeLimit 10 -RestartCount 3 -RestartInterval (New-TimeSpan -Minutes 1);$task = New-ScheduledTask -Action $action -Principal $principal -Settings $settings;Register-ScheduledTask -TaskName "abgox.InputTip.noUAC" -InputObject $task -Force', , "Hide")
powershell := 1
} catch {
powershell := 0
}
} else {
favicon := A_ScriptDir "\img\favicon.ico"
TraySetIcon(favicon, , 1)
}

checkIni() ; 检查配置文件
createTaskAndLnk()

checkUpdateDone()

Expand Down
Binary file removed src/v2/InputTipCursor.zip
Binary file not shown.
11 changes: 3 additions & 8 deletions src/v2/menu/JAB.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ fn_JAB(item, *) {
w := info.w
bw := w - g.MarginX * 2

g.AddEdit("xs -VScroll ReadOnly w" w, "1. 开启 Java Access Bridge`n2. 点击下方的或托盘菜单中的「设置光标获取模式」`n3. 将 JetBrains IDE 或其他 JAB 应用进程添加到其中的「JAB」列表中`n4. 如果未生效,请重启正在使用的 JetBrains IDE 或其他 JAB 应用`n5. 如果仍未生效,请重启 InputTip 或重启系统`n6. 有多块屏幕时,副屏幕上可能有坐标偏差,需要通过「设置特殊偏移量」调整")
g.AddEdit("xs -VScroll ReadOnly cGray w" w, "1. 开启 Java Access Bridge`n2. 点击下方的或托盘菜单中的「设置光标获取模式」`n3. 将 JetBrains IDE 或其他 JAB 应用进程添加到其中的「JAB」列表中`n4. 如果未生效,请重启正在使用的 JetBrains IDE 或其他 JAB 应用`n5. 如果仍未生效,请重启 InputTip 或重启系统`n6. 有多块屏幕时,副屏幕上可能有坐标偏差,需要通过「设置特殊偏移量」调整")
g.AddLink(, '详细操作步骤,请查看: <a href="https://inputtip.pages.dev/FAQ/use-inputtip-in-jetbrains">官网</a> <a href="https://github.com/abgox/InputTip#如何在-jetbrains-系列-ide-中使用-inputtip">Github</a> <a href="https://gitee.com/abgox/InputTip#如何在-jetbrains-系列-ide-中使用-inputtip">Gitee</a>')
g.AddButton("xs w" w, "「设置光标获取模式」").OnEvent("Click", fn_cursor_mode)
g.AddButton("xs w" w, "「设置特殊偏移量」").OnEvent("Click", fn_app_offset)
Expand All @@ -35,18 +35,13 @@ fn_JAB(item, *) {
gc.w.enableJABGui.Destroy()
gc.w.enableJABGui := ""
}
SetTimer(killAppTimer, -10)
SetTimer(killAppTimer, -1)
killAppTimer() {
try {
RunWait('taskkill /f /t /im InputTip.JAB.JetBrains.exe', , "Hide")
killJAB(1, A_IsCompiled)
if (A_IsAdmin) {
Run('schtasks /delete /tn "abgox.InputTip.JAB.JetBrains" /f', , "Hide")
}
if (A_IsCompiled) {
try {
FileDelete("InputTip.JAB.JetBrains.exe")
}
}
}
}
}
Expand Down
5 changes: 3 additions & 2 deletions src/v2/menu/about.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,17 @@ fn_about(*) {
g.AddEdit("yp ReadOnly", 'abgox')
g.AddText("xs", 'QQ 账号: ')
g.AddEdit("yp ReadOnly", '1151676611')
g.AddText("xs", 'QQ 群聊(交流反馈): ')
g.AddLink("xs", 'QQ 反馈交流群( <a href="http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=ZfHFP_gIMyY6kZvqRmJhrsMlvnLDjLf6&authKey=lXo50SvLgudu%2BettInNZdb2OXGjs%2BxsoqsKIB88Vcq%2FjMb9uEW5thwU5Nm85KNX4&noverify=0&group_code=451860327">点击添加</a> ): ')
g.AddEdit("yp ReadOnly", '451860327')
g.AddText("xs", "-------------------------------------------------------------------------------")

if (info.i) {
g.AddText("xs", "-------------------------------------------------------------------------------")
return g
}
w := info.w
bw := w - g.MarginX * 2

g.AddText("xs", "-------------------------------------------------------------------------------------")
g.AddLink("xs", '1. 官网: <a href="https://inputtip.pages.dev">https://inputtip.pages.dev</a>')
g.AddLink("xs", '2. Github: <a href="https://github.com/abgox/InputTip">https://github.com/abgox/InputTip</a>')
g.AddLink("xs", '3. Gitee: <a href="https://gitee.com/abgox/InputTip">https://gitee.com/abgox/InputTip</a>')
Expand Down
8 changes: 4 additions & 4 deletions src/v2/menu/app-offset.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ fn_app_offset(*) {
tip: "你首先应该点击上方的「关于」查看具体的操作说明 ",
list: "特殊偏移量列表",
color: "cRed",
about: '1. 如何使用这个管理面板?`n - 最上方的列表页显示的是当前系统正在运行的应用进程(仅前台窗口)`n - 为了便于操作,白名单中的应用进程也会添加到列表中`n - 双击列表中任意应用进程,就可以将其添加到「特殊偏移量列表」中`n - 如果需要更多的进程,请点击右下角的「显示更多进程」以显示后台和隐藏进程`n - 也可以点击右下角的「通过输入进程名称手动添加」直接添加进程名称`n`n - 下方是「特殊偏移量列表」,可以设置指定应用在不同屏幕下的符号显示偏移量`n - 双击列表中任意应用进程,会弹出偏移量设置窗口,或者点击窗口底部按钮移除它`n`n2. 如何设置偏移量?`n - 当双击任意应用进程后,会弹出偏移量设置窗口`n - 通过屏幕标识和坐标信息,判断是哪一块屏幕,然后设置对应的偏移量`n - 偏移量的修改实时生效,你可以立即在对应窗口中看到效果`n - 如何通过坐标信息判断屏幕?`n - 假设你有两块屏幕,主屏幕在左边,副屏幕在右边`n - 那么副屏幕的左上角 X 坐标一定大于或等于主屏幕的右下角 X 坐标',
about: '1. 如何使用这个管理面板?`n`n - 上方的列表页显示的是当前系统正在运行的应用进程(仅前台窗口)`n - 为了便于操作,白名单中的应用进程也会添加到列表中`n - 双击列表中任意应用进程,就可以将其添加到「特殊偏移量列表」中`n - 如果需要更多的进程,请点击右下角的「显示更多进程」以显示后台和隐藏进程`n - 也可以点击右下角的「通过输入进程名称手动添加」直接添加进程名称`n`n - 下方是「特殊偏移量列表」,可以设置指定应用在不同屏幕下的符号显示偏移量`n - 双击列表中任意应用进程,会弹出偏移量设置窗口,或者点击窗口底部按钮移除它`n`n2. 如何设置偏移量?`n`n - 当双击任意应用进程后,会弹出偏移量设置窗口`n - 通过屏幕标识和坐标信息,判断是哪一块屏幕,然后设置对应的偏移量`n - 偏移量的修改实时生效,你可以立即在对应窗口中看到效果`n - 如何通过坐标信息判断屏幕?`n - 假设你有两块屏幕,主屏幕在左边,副屏幕在右边`n - 那么副屏幕的左上角 X 坐标一定大于或等于主屏幕的右下角 X 坐标',
link: '相关链接: <a href="https://inputtip.pages.dev/FAQ/app-offset">关于特殊偏移量</a>',
addConfirm: "",
addConfirm2: "",
Expand Down Expand Up @@ -43,10 +43,10 @@ fn_app_offset(*) {
g := createGuiOpt("InputTip - 设置特殊偏移量")
text := "每次只能添加一个应用进程名称"
if (useWhiteList) {
text .= "`n如果它不在白名单中,则会同步添加到白名单中"
text .= "`n如果它还不在白名单中,则会同步添加到白名单中"
}
g.AddText("cRed", text)
g.AddText("xs", "应用进程名称: ")
g.AddText("Section", "应用进程名称: ")

if (info.i) {
return g
Expand All @@ -60,7 +60,7 @@ fn_app_offset(*) {
e_yes(*) {
exe_name := gc._exe_name.value
g.Destroy()
if (!RegExMatch(exe_name, "^.+\.\w{3}$") || RegExMatch(exe_name, '[\\/:*?\"<>|]')) {
if (!RegExMatch(exe_name, "^.*\.\w{3}$") || RegExMatch(exe_name, '[\\/:*?\"<>|]')) {
if (gc.w.subGui) {
gc.w.subGui.Destroy()
gc.w.subGui := ""
Expand Down
3 changes: 2 additions & 1 deletion src/v2/menu/bw-list.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ fn_bw_list(*) {
gc._bw_list.Value := 1
writeIni("useWhiteList", 0)
global useWhiteList := 0
restartJAB()
}
e_no(*) {
_g.Destroy()
Expand Down Expand Up @@ -76,7 +77,7 @@ fn_bw_list(*) {
tip: "你首先应该点击上方的「关于」查看具体的操作说明 ",
list: "符号显示黑名单",
color: "cRed",
about: '1. 如何使用这个管理面板?`n - 最上方的列表页显示的是当前系统正在运行的应用进程(仅前台窗口)`n - 为了便于操作,白名单中的应用进程也会添加到列表中`n - 双击列表中任意应用进程,就可以将其添加到「符号显示黑名单」中`n - 如果需要更多的进程,请点击右下角的「显示更多进程」以显示后台和隐藏进程`n - 也可以点击右下角的「通过输入进程名称手动添加」直接添加进程名称`n - 下方是「符号显示黑名单」应用进程列表,如果使用黑名单机制,它将生效`n - 双击列表中任意应用进程,就可以将它移除`n`n - 黑名单机制: 只有不在黑名单中的应用进程窗口才会显示符号`n - 使用黑名单,可能会有一些特殊窗口的兼容性问题`n - 建议使用白名单机制,最好少用黑名单机制`n`n2. 如何快速添加应用进程?`n - 每次双击应用进程后,会弹出操作窗口,需要选择添加/移除或取消`n - 如果你确定当前操作不需要取消,可以在操作窗口弹出后,按下空格键快速确认',
about: '1. 如何使用这个管理面板?`n`n - 上方的列表页显示的是当前系统正在运行的应用进程(仅前台窗口)`n - 为了便于操作,白名单中的应用进程也会添加到列表中`n - 双击列表中任意应用进程,就可以将其添加到「符号显示黑名单」中`n - 如果需要更多的进程,请点击右下角的「显示更多进程」以显示后台和隐藏进程`n - 也可以点击右下角的「通过输入进程名称手动添加」直接添加进程名称`n`n - 下方是「符号显示黑名单」应用进程列表,如果使用黑名单机制,它将生效`n - 双击列表中任意应用进程,就可以将它移除`n`n - 黑名单机制: 只有不在黑名单中的应用进程窗口才会显示符号`n - 使用黑名单,可能会有一些特殊窗口的兼容性问题`n - 建议使用白名单机制,最好少用黑名单机制`n`n2. 如何快速添加应用进程?`n`n - 每次双击应用进程后,会弹出操作窗口,需要选择添加/移除或取消`n - 如果你确定当前操作不需要取消,可以在操作窗口弹出后,按下空格键快速确认',
link: '相关链接: <a href="https://inputtip.pages.dev/FAQ/white-list">白名单机制</a>',
addConfirm: "是否要将",
addConfirm2: "添加到「符号显示黑名单」中?",
Expand Down
2 changes: 1 addition & 1 deletion src/v2/menu/check-update.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ fn_check_update(*) {
}
gc.checkUpdateDelay := checkUpdateDelay
g := createGuiOpt("InputTip - 设置更新检查的间隔时间")
g.AddText("cRed", "- 单位: 分钟,默认 1440 分钟(1 天)`n- 避免程序错误,可以设置的最大范围是 0-50000 分钟`n- 如果为 0,则表示不检查版本更新`n- 如果不为 0,在 InputTip 启动后,会立即检查一次`n- 如果大于 50000,则会直接使用 50000")
g.AddText("cGray", "- 单位: 分钟,默认 1440 分钟(1 天)`n- 避免程序错误,可以设置的最大范围是 0-50000 分钟`n- 如果为 0,则表示不检查版本更新`n- 如果不为 0,在 InputTip 启动后,会立即检查一次`n- 如果大于 50000,则会直接使用 50000")
g.AddText(, "每隔多少分钟检查一次更新: ")
_ := g.AddEdit("yp Number Limit5")
_.Value := readIni("checkUpdateDelay", 1440)
Expand Down
Loading

0 comments on commit 36589f2

Please sign in to comment.