最近有时间重新分析了这个问题,最终发现我这个不能打印的问题是腾讯应用宝造成的。
--
之前我再去用户调整电脑时候就把原来的系统镜像复制下了(之前我是新装了系统到VHD上)。
后来和正常系统对比文件和注册表,最后发现是字体注册表被写入了错误的值。
具体是HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts下,名为 sdk_init_timestamp 的值为:1773390355,其为时间戳换算后时间为:2026-03-13 16:25:55。
应该这个注册键值的类型错误吧(类型是dword,如果是字符类型打印是正常的),导致IE打印时候检索字体时候直接出错跳出了。
搜索了下,网上有说是腾讯应用宝的问题,检查该电脑应该没有安装应用宝。
但有应用宝残留文件目录:C:\Program Files\Tencent\Androws、C:\Users\Administrator\AppData\Roaming\Tencent\Androws。
从时间上看,可能当时我给卸载的,不过可能因为没有修复问题所以没有印象。
检查注册表,发现同时期写入的注册表项目 yyb.ttf,其字体属性版权为腾讯公司,显然yyb为应用宝拼音字头缩写。
安装应用宝测试,发现确实其写入这个键值,同时卸载时并未进行清理。
---
整理时间线:
2026-03-13 用户通过360浏览器(软件商店)安装腾讯应用宝
2026-03-18 用户说网银不能打印回单(该网银必须用IE):
检测发现IE浏览器本身就不能打印(包括空白页),预览正常,有打印对话框,但打印没反应(注:默认的XPS打印机正常),能检测生成了临时的网页文件。
各种尝试修复IE,失败
2026-03-19 各种尝试修复IE失败后,新装系统于VHD上
2026-04-28 抓取用户的故障系统准备以后分析
2026-05-03 五一期间,对故障系统和正常系统(该系统的原始镜像)进行对比分析:
发现两者文件基本一致,直接恢复覆盖原始系统的软件注册表文件(software)后可正常打印,逐步对比分析注册表。
最后发现故障的问题在于字体部分注册表有错误键值(sdk_init_timestamp),搜索及分析得知为腾讯应用宝造成的。
---
解决方法:
a.注册表编辑器(regedit)定位:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
删除:sdk_init_timestamp 。
b.管理员身份运行:
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v sdk_init_timestamp /f
---
复现问题,管理员身份运行:
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v sdk_init_timestamp /t REG_DWORD /d 1 /f
|