无法独立打开windows 7帮助文件
本文关键字:帮助 文件 windows 独立 | 更新日期: 2023-09-27 18:14:57
在Windows 7中,如果我运行像《扫雷》或《麻将巨人》这样的游戏,然后从游戏菜单中选择"帮助",我就会看到一个独立的帮助窗口,从中我可以导航到其他主题(大概是操作系统附带的所有帮助文件)。注意,我总是选择"离线帮助",而不是"在线帮助"。
我想从c#中的按钮单击事件打开这些文件。问题是,我不知道这些文件存储在哪里,甚至不知道扩展名是什么。
当我打开独立的帮助窗口时,任务管理器将该进程列为位于C:'Windows中的"HelpPane.exe"。如果我尝试双击HelpPane.exe,什么也没发生。
如果我右键单击帮助窗口并选择"查看源代码",我看到它基本上是一个网页。一个例子
标记: <BODY helptype="toc" helpurl="mshelp://windows/?tocid=ebd9c148-6e8d-4359-83d5-f4b700ab2f8f" helpsource="local" Lang="en-US">
我可以访问mshelp://windows/…从c#程序?还是有别的办法能让我如愿以偿?
HelpPane.exe是一个进程外COM服务器。您可以激活它并让它在您自己的c#程序中轻松显示内容。要开始,使用项目+添加参考并选择c:'windows'helppane.exe。这将从嵌入在help .exe中的COM类型库中创建互操作库,并使用"APClientHelpPane"命名空间生成。
显示Windows帮助主题内容文件的示例程序:
using System;
using WinHelp = APClientHelpPane;
class Program {
static void Main(string[] args) {
var obj = new WinHelp.HxHelpPaneServer();
string docpath = @"C:'Windows'Help'Windows'ContentStore'en-US'windowsclient.mshc";
obj.DisplayContents(docpath);
}
}
在Windows 8.1的en-US版上测试。不知道你在Windows 7上有多少运气,我怀疑你必须修改。mshc文件的路径。这当然与你有关。微软也没有义务在未来版本的Windows上保持这个功能,这个自动化接口没有文档。对各种Windows程序的主题名称进行反向工程并不是那么明显,我怀疑你可以使用mshelp://url,你可以通过检查显示的内容找到它们,但是它们在Windows版本之间的稳定性如何,这是你必须找到的困难方法。
您应该会对Microsoft帮助查看器SDK感兴趣。这篇博文中提到了MSHC创作工具