微软拼音输入法打字字数实时统计工具(AHK脚本,使用TrafficMonitor的TextReader插件显示)

一、软件信息

  • 软件名称:微软输入法字数实时统计
  • 适用平台:win11(其他未测试),欢迎大家测试,补充
  • 使用条件:必须是新版的微软拼音输入法
  • 推荐类型:开发者自荐
  • 软件类型:输入法相关
  • 开发语言:AHK v1版本

二、简介

本人工作打字较多,希望有一个简洁的字数统计工具,能够实时看到字数。经dog老师开发的 微软输入法计数器2.0(已修复)——集字数统计、输入朗读、文字时光机于一身 - 发现频道 - 小众软件官方论坛的启发,编写了此脚本,希望能方便大家的工作。
大家也可以根据自己需求,自由修改。
运行效果如下:
运行效果.png

三、主要功能

作为字数实时统计脚本,当然是字数统计啦。另外把dog老师的朗读功能也加上了,对我比较有帮助。大家可自由选择开关,默认是关闭。

四、特色

1、无感运行

实现了自动获取微软拼音输入法的HWND,说简单点,就是开启脚本后台运行,无需任何操作就可以实现字数实时统计。
再把脚本设置为开机自动启动,就可以无感运行了。

2、 精准统计

dog老师的作品中,按space键时,设置为与按数字1键相同,导致字数统计偏差,因为按space时,选中的字(词)并不一定是第一个。我用select事件获取选词框选择的字(词),这样字数统计更精准了。

五、使用方式

1、下载脚本

链接在最后面给出

2、设置基本运行环境

2.1 字数实时统计统计功能部分

解压缩包,微软输入法字数实时统计脚本文件夹里面,如下图所示:
33.png

v1.1(新版微软输入).ahk是主脚本文件;v1.1(新版微软输入).exe是发布的exe程序,UIA_interface是依赖库;TypingSatic_Settings是配置文件。三者放到一个路径内,不要分散。
点击运行,运行正常的话,在脚本文件所在目录会新建一个type_statistics_info.txt,初始运行,里面记录着Daily : 0 Total : 0 。
44.png

2.2 显示功能部分

统计的数据实时显示,依赖TrafficMonitor的TextReader插件,在我提供的链接内下载,内含TextReader插件。喜欢自己动手的话,也可以自行在github上下载。
运行TrafficMonitor后,先设置TextReader插件为显示,如下图所示:
步骤1.png

然后,按照以下步骤打开文本阅读器插件的插件选项:
步骤2.png
最后,在打开文件那里选择脚本文件中生成的type_statistics_info.txt文件,并勾选允许多行显示和文件更改时自动重新加载。按确定。
步骤3.png
此时应该大功告成了!

六、注意事项

1、只支持新版微软拼音,就是下图这样的:
注意事项1.png
不支持其他版本,比如下图这样的:(网上搜的图)
注意事项2.png
也不支持搜狗、手心、QQ输入法等等。

2、刚开始运行时候,打字如果太快,可能会漏掉字数,因为脚本需要搜索微软输入法的选词框,但是搜索到一次之后(只要不关机)基本上就不会漏字了,即使是笔记本进入睡眠模式,也不会丢掉选词框的HWND。

3、在搜索选词框的时候,会以选词框的ClassName为准,为ApplicationFrameWindow,但是,win11自带的很多小工具的ClassName也是ApplicationFrameWindow,比如说:设置、日历、时钟、照片、截图工具、地图、便签等等,如果在脚本启动的时候,这些窗口在打开的状态,则脚本几乎不可能正常运行,我在脚本里面把常见的做了排除,但还有不少小工具,比如Dolby Access、Journal等等,目前不能一一排查。幸运的是,很多可能一台电脑用报废了,这些小工具也不会用的到。但还是建议在首次运行脚本的时候,不要打开一些系统自带的小工具窗口。
不要问为啥不改改,因为没找到可行的,适用性更广的途径。 :joy:欢迎大家一起解决这个问题。

4、发布的exe不知道可不可行,我电脑上可行。如果不行可以用AHK运行,需要下载AHKv1版本。

5、可以设置成开机自启,无感开启字数实时统计。

七、下载链接

通过网盘分享的文件:微软输入法字数实时统计.zip
链接: https://pan.baidu.com/s/1aGGlwnJobZdDlYasNpptag 提取码: t3i2

1 个赞

赞赞赞


半年运行总结:

稳定运行,做了小的更新。敲了23万字了。很满意!

1 个赞

楼主 win11 设置了 为啥统计字数还是0 用的是新版的微软输入法

可能的原因很多。。。

调试一下试试,或者在关键语句位置设置 ToolTip语句,看看是否是预期输出。

代码里面有很多注释掉的ToolTip语句,都是用来调试的。

我觉得很有可能在CheckInputMethodWindow或者BindCandidateEvents里面出现了问题。

1 个赞