您现在的位置: 365建站网 > 365文章 > chm 文件打不开或显示空白?解除锁定与解包转换方法

chm 文件打不开或显示空白?解除锁定与解包转换方法

文章来源:365jz.com 点击数:10 更新时间:2025-01-20 22:12

双击 .chm 文件却只看到一个空白页、左侧目录有内容右边全白、或提示“已阻止访问”——这是 Windows 对下载文件的安全拦截与 CHM 自身结构问题共同造成的。CHM(Compiled HTML Help)是微软 1998 年推出的帮助文档格式,至今仍被大量离线手册、SDK 文档、题库使用。本文给出打开、修复与安全判断方法。

chm 文件打不开 空白 已阻止访问

一、CHM 是什么、靠什么打开

  • 本质是被压缩打包的 HTML 站点 + 索引 + 目录树,扩展名 .chm;
  • Windows 打开它依赖组件 hh.exe(Help Hub),路径 C:\Windows\hh.exe;关联方式:HH.exe -e %1;
  • 内部技术上是 ITStorage/ITS 格式,因此需要 itircl.dll / itss.dll 等组件正常注册。

如果双击毫无反应,先手工验证组件是否可用:
Win+R → hh.exe 能打开“HTML 帮助”程序界面,说明组件在;打不开则是系统组件被精简。

二、打开后空白/被阻止(最常见)

原因:网络下载的文件被标记为“来自 Internet”,HTML 帮助渲染器会拒绝执行其中的脚本与跳转。微软在 2016 年 KB3124157(以及后续累积更新)后收紧了这一点,官方文档说明的处置方式有三种:

  1. 解除单文件锁定(推荐):右键该 chm → 属性 → 常规页底部勾选“解除锁定 / Unblock” → 应用。命令行方式:
    Unblock-File .\manual.chm
  2. 移到本地可信目录:把文件放到 C:\Help\ 这类非下载来源路径,注册表添加允许路径:
    HKLM:\SOFTWARE\Microsoft\HTML Help\  新建字符串 BlockedRoots 之外,实际用 Paths 更常见
    # 常用做法:新建 "HKCU:\SOFTWARE\Microsoft\HTML Help\Paths" 之类并不统一,
    # 微软建议的方式是下面的 "在本地磁盘非受限目录中打开"
    更稳妥的做法是直接放到 %WINDIR%\Help 或自建目录后再打开;
  3. 用其它引擎打开(最省心的绕过):7-Zip 可以直接把 chm 当压缩包打开,抽取其中的 HTML 图片,然后本地用浏览器看;或用 Ninja chm、Sumatra PDF(支持 chm,https://www.sumatrapdfreader.org/ )阅读,这两个都做了权限兼容。

三、其它故障表现

  • 左侧目录正常,正文报 “无法找到该页”:CHM 内部 #topic 跳转失效,或页面 ID 与目录不匹配——多为制作时用了错误的话题 ID。临时解法:用“索引”标签搜关键词、或用 7-Zip 解出 HTML 直看;
  • 中文乱码:CHM 内 HTML 未声明 charset,或制作时用了非 UTF-8。解出后用 chardet 判断编码,再用 iconv -f gbk -t utf-8 转;
  • 提示“文件已损坏 / 不是一个有效的 Windows HELP 文件”:下载不完整(对比文件大小与哈希)或传输中被截断;CHM 没有可靠的修复工具,只能重新获取;
  • Win11 上完全无法打开:部分精简版/长期未更新的镜像删了 help 组件;先跑 sfc /scannow,或用第三方阅读器。

四、把 CHM 转成更通用的格式

# 1) 解包成 HTML(7-Zip 直接支持)
7z x manual.chm -o./out

2) 解出的 HTML 批量转 PDF(用 wkhtmltopdf 或 Chrome headless)

先按 toc.ncx/目录顺序整理文件名,再合并

chrome.exe --headless --print-to-pdf=out.pdf --no-sandbox “file:///D:/out/index.html”

3) 用 Calibre 把 chm 转 epub(适合在阅读器上看)

ebook-convert manual.chm manual.epub

4) Linux/macOS 有 chmx/chmsee 类工具,也有 libreoffice 插件方案

说明:7z x 解出的目录里通常有 _PressResourceFiles、#DECOMPRESSEDSCRIPTS、html 与图片、toc 目录表,顺序需要自己整理。

五、安全性:chm 常被用作恶意载体

CHM 里可以包含 HTML + 脚本(VBScript/JScript)+ 可执行附件,历史上是钓鱼/木马投递的高频格式,因为它“看起来像文档”。判断规则:

  • 来源不明(邮件附件、网盘、聊天群传的“题库/教程”)不要直接双击;
  • 先看内部文件:用 7-Zip 不解压地浏览,若出现 .exe/.dll/.bat/.vbs/.js/.hta/.scr 这类文件,直接删除;
  • 用 VirusTotal 或本地杀软扫描后再决定是否阅读,必要时用上面“解出 HTML 看”的方式避开脚本执行;
  • Windows 的“解除锁定”只是放开渲染限制,不代表该文件安全,两者别混淆。

六、常见问题 FAQ

问:为什么我的 chm 在自己电脑能看,同事打不开?
答:多半是他从网上下载的(被 Mark-of-the-Web 锁定)。让他按第二节的 Unblock 处理即可。

问:能自己生成 chm 吗?
答:可以。微软旧工具 HTML Help Workshop(.hhp 项目文件);现代可用 eBookMaker、Python 的 pychm(读为主)或走 chmcmd(Free Pascal 的 ChmLib,chmcmd -project xxx.rhp)。

问:能不能禁掉系统对 chm 的执行来防风险?
答:可以按策略禁用 HH.exe(AppLocker 规则针对 %WINDIR%\hh.exe),企业环境常用。

要点:打不开先想“被锁定”,用 Unblock-File 或属性解除;看内容可用 7-Zip 解包或 Sumatra/Ninja chm;来路不明的一律先看内部有没有 exe/vbs。

生产内容,同时打通搜索引擎(SEO)与AI搜索引擎(GEO)流量入口的软件! 点击进入365建站器 »