只是一些想法 - 但要小心第一个提示:
文件 hh.dat 的用途是什么?
hh.dat 文件存储有关您系统上所有 HTMLHelp 文件 (*.CHM) 的用户特定信息(位置、喜爱的主题、搜索历史等),如果它以某种方式损坏,可能会导致错误。删除或重命名文件 hh.dat 以将系统上的所有 (!) CHM 窗口重置为其默认设置。您应该在此目录中找到 hh.dat:
\Documents and Settings\%username%\Application Data\Microsoft\HTML 帮助
当您下次打开任何 .chm 文件时,Windows 将创建一个新版本的 hh.dat。
根据微软的 HTML 帮助 API 文档(http://msdn2.microsoft.com/en-us/library/ms644703(VS.85).aspx):
您通过 HTML 帮助 API 创建的任何帮助窗口都归调用程序或父程序所有。这允许帮助窗口保持在其父程序之上,但不在任何其他具有焦点的程序之上。
因此,帮助窗口保持焦点的事实实际上是标准行为。
如果您查看一个典型的 HTML 帮助 API 调用,您会看到第一个参数指定调用帮助的窗口的“句柄”:
HtmlHelp(hwndCaller,"YourHelpFile.chm",HH_HELP_CONTEXT,1001);
如果开发人员传递“null”而不是窗口句柄作为调用的第一个参数,则帮助窗口不再归调用程序所有,因此不保留焦点。这是一个修改后的调用示例:
HtmlHelp(0,"YourHelpFile.chm",HH_HELP_CONTEXT,1001);
但是,这样做有一个缺点:当以这种方式调用时,帮助窗口不再受调用程序的操作的约束。因此,如果用户关闭或最小化程序,帮助窗口也不会关闭或最小化。