我是C#的新手并且正在为实用程序工作以验证帮助文件的主题ID内容.以下功能对我启动帮助文件非常有用:
Help.ShowHelp(this, HelpFile.Text, HelpNavigator.TopicId, topicIDStr);
Run Code Online (Sandbox Code Playgroud)
如果Help.ShowHelp()函数无法使用提供的CHM文件和主题ID启动.CHM(帮助文件),那么我需要向用户提供有关启动失败的通知.
以下是伪代码示例:
If Help.ShowHelp() failed
{
Messagebox("Failed to launch help")
}
Run Code Online (Sandbox Code Playgroud)
我在网上搜索但无法从ShowHelp()中找到函数或返回类型/参数,这将通知showHelp()函数失败.
以下内容已经尝试过:
由于我来自MFC背景,我试图在C#中找到与GetLastError()相关的函数.因此建议使用getlastwin32error(),但不会在失败情况下提供最后一个错误
Help.ShowHelp()的参数或返回类型对查找失败条件没有用.
谢谢阅读.
这个问题很难回答,因为我们没有太多关于您如何使用 topicIDStr 的信息。按照我的文章为应用程序创建上下文相关帮助中所示格式化 contextID 数字后,您可以通过代码检查数字范围。
\n\n但同样,在开发应用程序和编写帮助文件时,您必须检查所有 \xc2\xb4topicID\'s\xc2\xb4。许多事情取决于应用程序如何调用帮助。
\n\n您可能知道,这两个文件(ALIAS 和 MAP)的目的是简化开发人员和帮助作者之间的协调(请参阅上面的链接)。映射文件将 ID 链接到地图编号 - 通常开发人员可以轻松创建该 ID 并将其传递给帮助作者。然后,帮助作者创建一个别名文件,将 ID 链接到主题名称。人们可以通过FAR HTML从外部检查这一点。FAR HTML 是一个充满各种创作、文件和 HTML 实用程序的工具箱。
\n\n\n\n请记住 HTMLHelp 已有大约 20 年的历史,由 Ralph Walden 用 C++ 编写。.NET(例如VB 或C#)Help 类是旧式HTMLHelp API 调用的包装器,也是Microsoft 程序员针对托管代码进行的快速而肮脏的编码。非托管代码是人的方式,也是第二种(困难的)解决方案。
\n\n因此,当您确实想深入了解这一点时,我会提供一些链接和信息作为起点。但你必须自己根据你的需求编写代码。
\n\n如何从托管 Visual C# 应用程序使用非托管 HTML 帮助 API
\n\n\n\nHH_GET_LAST_ERROR 命令引用了丢失的文件 Hherror.h,可以在以下Microsoft 知识库文章中找到该文件。
\n\nHtmlHelp.h 文件有一条带有 HH_GET_LAST_ERROR 的注释,表示“未实现”,但看起来它至少已部分实现。如果我调用 HtmlHelp(0, PChar(mHelpFile), HH_HELP_CONTEXT, 911); 其中 911 是无效的 ContextID,则 HH_GET_LAST_ERROR 返回错误 0x8004020A,并带有描述文本“已编译的帮助 (.chm) 文件不包含上下文 ID。”\n对于大多数类型的错误,HH_GET_LAST_ERROR 似乎返回 0x80004005“未指定错误”。
\n\n仅作为一个想法,请查看:\n OCX 文件上的 LoadLibrary 在 Windows 7 x64 中失败
\n\n正如其他人所提到的,您可以检查例如 File.Exists 并在下面的代码示例中显示以进行调用Process.Start(...)。
private void button1_Click(object sender, EventArgs e)\n{\n string helpFilePath = Application.StartupPath + @"\\help-subfolder\\C-Sharp-CHM-example.chm";\n\n // Verify if the file exists\n if (File.Exists(helpFilePath))\n {\n Process.Start(helpFilePath);\n }\n else\n {\n Console.WriteLine(string.Format("File not found [{0}]", helpFilePath));\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
549 次 |
| 最近记录: |