记得以前这种情况也发生过,当时因为事情多,没有功夫理它,只是把
文件名改成英文了事。现在又发生这种情况,一定要把它了结掉。
我本来想打开的CHM文件应该是“F:\全唐诗.chm”,为什么错误报告中
提到的文件名前面多了一串乱七八糟的“mk:@MSITStore:”?难道系统把我
本来的文件名擅自篡改了吗?必须观察一下系统打开文件的过程。我使用了
工具Filemon(
http://www.sysinternals.com/ntw2k/source/filemon.shtml)
来监视系统打开文件的过程,结果发现系统在发出“叮”的一声报告错误之
前试图对以下文件取属性:
F:\全唐诗.CHI
但是RESULT为“NOT FOUND”。难道它要打开的文件是“全唐诗.CHI”?于是
我把文件的扩展名改成CHI,结果是连文件关联都不存在了,更别说打开了。
用Filemon没有解决任何问题。看来只好求助于SoftICE来追踪了。我首
先想到的是在CreateFileA这个API上面设个断点,这样好监视系统究竟打开
了什么文件,结果发现系统试图打开一个叫“F:\???.CHM”的文件并且失败
了: