阅读:896回复:15

执行yong-quit.exe后能否生成未合并的user.txt

楼主#
更多 发布于:2024-04-02 10:23
想通过批处理对输入法打包备份
但由于输入的过程中可能会有码表变动未合并
所以尝试在yong-quit之后执行

yong --tool=libmb.so mb.txt out.txt dump --option=head,main,user --format=yong
类似的命令
实验下来发现yong.exe生成user.txt并不是实时的
如果码表变动后立即yong-quit
yong.exe可能会未来得及生成新的user.txt
所以会出现一定机率的失败
而主动点击主程序yong.exe系统栏图标右键菜单
点退出时可以生成user.txt
只是这样就没有了自动执行的便捷


可否为yong-quit添加一个命令参数
不是kill而是传送消息给yong.exe
使其正常退出为当前未合并的码表生成user.txt
甚至直接生成合并后的新码表
就像使用主程序系统栏菜单项中的“工具→合并用户码表”一样的效果


若能再进一步为yong-config配置工具添加一个配置选项
开启系统关机重启时自动生成合并后新码表的功能
那就太好了


谢谢先!

最新喜欢:

dgoddgod
沙发#
发布于:2024-04-08 19:38
yong.exe -quit
这种退出模式有点怪异
假设当前已存在正常运行的yong.exe进程
再运行新的yong.exe进程以结束已存在的同样名称的进程(两个同名的进程间传送消息)
这与通过系统栏图标右键菜单退出(单个进程内部消息传递)是两个概念
为了不增加新的文件而让程序的逻辑复杂度增加不是个好主意
如果可以让user.txt的更新接近实时化
使用taskkill结束yong.exe就可以了
所以问题的关键是码表变更后能够快速生成变动后的用户码表文件
当然要以不影响输入法响应为宜
只有保存在硬盘上的文件才让人心里踏实
不是么
板凳#
发布于:2024-04-07 18:47
dgod:yong-quit.exe使用后不能保存的问题我也无法确定,请先升级程序到最新测试版。
yong-quit.exe源代码已丢失,不清楚它为什么特别。重写了一个,我测试过是好的。
回到原帖
周大可以将这个退出的功能直接集成到yong.exe中吗?比如yong.exe -quit这样就不用单独再提供一个文件了。
地板#
发布于:2024-04-03 20:58
dgod:我这测了几次没问题,应该是系统问题,这个问题我就不解决了。回到原帖
收到
问题影响不大
谢谢啊!
4楼#
发布于:2024-04-03 20:57
我这测了几次没问题,应该是系统问题,这个问题我就不解决了。
5楼#
发布于:2024-04-03 20:54
命令直通车中调用了yong-quit
在执行命令直通车之前记下了yong.exe的PID
命令直通车执行完毕后
yong.exe的PID没变
说明进程没有退出过

老版本的yong-quit类似于taskkill
新版的应该是发送了正常退出消息给yong.exe了
只是这个退出机制可能有些问题
6楼#
发布于:2024-04-03 20:45
补充一下
奇怪的是yong-quit执行过后有1分钟以上时间后yong.exe自行退出了
在yong.exe退出之前程序依然可以正常输入
感觉上yong.exe收到了正常退出的消息但是因为什么未知原因延迟执行了

又多试了几次
有时立即就退出了
有时会有几秒之后
这个延迟不大可以接受
可能是我系统的问题吧



还有一个问题就是
直接点击进行这个yong-quit是正常的
在命令直通车中通过批处理调用这个yong-quit就会出现不响应无效的问题
7楼#
发布于:2024-04-03 20:41
dgod:yong-quit.exe使用后不能保存的问题我也无法确定,请先升级程序到最新测试版。
yong-quit.exe源代码已丢失,不清楚它为什么特别。重写了一个,我测试过是好的。
回到原帖
这个附件中的yong-quit在我系统里无法起到退出yong.exe进程的作用
多次执行该程序后
yong.exe依然在运行
不知道是什么情况

winsrv 2022 21H2
8楼#
发布于:2024-04-03 20:23
yong-quit.exe使用后不能保存的问题我也无法确定,请先升级程序到最新测试版。
yong-quit.exe源代码已丢失,不清楚它为什么特别。重写了一个,我测试过是好的。
附件名称/大小 下载次数 最后更新
yong-quit.7z (6KB)  5 04-03 20:22
9楼#
发布于:2024-04-03 15:07
留个记号备用




rem createBK.bat
rem 此脚本合并用户码表后打包备份yong输入法
rem 为合并码表应确保此脚本所在目录为%src%
rem 即32位的yong.exe可执行程序所在目录
rem 可在zhengma.txt码表中添加命令直通车
rem bkup $[备份]$GO(createBK.bat)
rem 如果想静默执行7-Zip打包
rem 可将7zG.exe改为7z.exe反之亦然
rem 输入法开启时中文输入状态下输入bkup选择备份即可
rem 输入法不开启时单独执行此批处理亦可
rem 用户可根据需要更改路径配置项及码表文件
rem 已知yong.exe合并用户码表时可能存在只识别相对路径的问题
rem 后续若有输入法版本更新再行调整


rem 配置路径
set pack="c:\Program Files\7-Zip"
set src=c:\proApp\TotalCMD\addon\yong
set cfg=%src%\.yong
set tmp=z:
set bkup=d:\soft\tool\ime


rem 退出输入法
if exist %src%\yong-quit.exe (%src%\yong-quit.exe) else (taskkill /F /IM yong.exe)


rem 遍历输入法目录删除升级后残留的旧文件
for /r %src%\ %%a in (*del) do del /f /q %%a
rem 若tsf文件夹下dll被占用则需杀掉explorer后手动处理


rem 合并用户码表
if exist %cfg%\user.txt (
if not exist %cfg%\mb (md %cfg%\mb)
yong.exe --tool=libmb.so mb\zhengma.txt .yong\mb\zhengma.txt dump --option=head,main,user,adjust --format=yong
)


rem 更新合并后的用户码表
if exist %cfg%\mb\zhengma.txt move /y %cfg%\mb\zhengma.txt %src%\mb\


rem 删除配置更改后的旧配置文件
if exist %cfg%\yong.ini.old (move /y %cfg%\yong.ini %src%\)


rem 清理并重建用户配置目录
rd /s /q %cfg%
md %cfg%
copy %src%\yong.ini %cfg%\


rem 打包输入法
%pack%\7z.exe a %tmp%\yong.7z %src% -aoa -m0=BCJ2 -m1=LZMA:d25 -m2=LZMA:d19 -m3=LZMA:d19 -mb0:1 -mb0s1:2 -mb0s2:3


rem 如果存在备份文件就进行备份更新
if exist %bkup%\yong.7z (move /y %tmp%\yong.7z %bkup%\)


rem 重启输入法
%src%\yong.exe


rem 退出批处理若未退出手动关闭CMD窗口即可
exit
上一页
游客

返回顶部