我有许多CHM文件,每个文件都是5个不同Html文件的压缩html。我的意思是,假设我有5个不同的文件,名为Alpha,Beta,Gamma,Delta,Theta。 说,我在CHM文件中压缩这5个。让我们调用该文件CompressedHtm.CHM。我有> 500个这些文件。 现在我想检查所有这些> 500个文件是否都有5个子文件(即Alpha,Beta,Gamma,Delta,Theta)。有没有办法在VC ++ 6.0 / MFC中检查它而不解除CHM文件。?
答案 0 :(得分:1)
使用Free Pascal提供了一个完全独立的(*)命令行可执行CHMLS,它允许列出CHM文件的内容。它适用于多个平台。
您可以使用管道执行该操作,然后处理输出。
几天前,我偶然会把exes拉到前面,你可以在这里找到它们 http://www.stack.nl/~marcov/chmls.zip
(或者如果你不信任我,请下载fpc 2.4.0 windows版本)
(*)我不知道win9x上的状态。
输出如下:
<Section> <Offset> <UnCompSize> <Name>
0 0 0 /#ITBITS
1 27737212 192334 /#STRINGS
0 70 133 /#SYSTEM
1 22414493 169080 /#TOCIDX
1 26847375 339904 /#TOPICS
1 27187279 294757 /#URLSTR
1 27482036 255176 /#URLTBL
1 27929546 1174749 /$FIftiMain
1 22411742 2751 /$OBJINST
0 0 0 /$WWKeywordLinks/
1 24122411 628812 /$WWKeywordLinks/BTree
1 24751223 111371 /$WWKeywordLinks/Data
1 24862594 2378 /$WWKeywordLinks/Map
1 24864972 1 /$WWKeywordLinks/Property
0 0 70 /_#_README_#_
0 0 0 /baseunix/
1 10656150 1395 /baseunix/_stat_ver.html
1 10651853 1438 /baseunix/_stat_ver_kernel.html
1 10654717 1433 /baseunix/_stat_ver_linux.html
1 10650407 1446 /baseunix/_stat_ver_linux_old.html
1 10653291 1426 /baseunix/_stat_ver_svr4.html
1 10452426 1438 /baseunix/arg_max.html
1 10644473 1510 /baseunix/bitsinword.html
以#和$开头的文件是内部文件。
(这些工具是Free Pascal的CHM库附带的工具,它支持CHM读/写支持,独立于Free Pascals文档和帮助系统的其他工具。它独立于操作系统,据我所知,它在OS X上工作正常/ PowerPC64
答案 1 :(得分:0)
HTML帮助使用IE进行显示。所以你只需要使用webbrowser导航到像mk这样的URL:@MSITStore:c:\ WINDOWS \ Help \ htmlhelp.chm :: / apiref.htm。如果该文件不存在,您将获得带有404状态代码的DWebBrowserEvents2 :: NavigateError。 请注意,您可能会在现有版本的Windows上遇到其他错误,因为Microsoft有limited its usage due to security concerns。