【问题标题】:Using ProcessStartInfo to open chm使用 ProcessStartInfo 打开 chm
【发布时间】:2018-07-26 02:53:00
【问题描述】:

我正在尝试使用 C# 打开一个旧的 chm(已编译的 HTML)文件到指定的书签 - 不要问为什么;)

var psi = new ProcessStartInfo("hh.exe");
psi.Arguments = @"ms-its:X:/MyApplication/Help/MYHELPFILE.chm::MYHELPFILE.htm#36531"; // 36531 is my "topic path"
var cmdProcess = Process.Start(psi);

这会打开正确的文件,但无法打开到书签位置 (36531)。

当我直接从命令行调用 hh 时,它会在书签位置显示正确的文件:

hh ms-its:X:/MyApplication/Help/MYHELPFILE.chm::MYHELPFILE.htm#36531

我正在使用here 指定的命令行参数。

为什么这两种传递参数的方法不等价?当我通过 Process.Start 调用时,为什么我的书签会被忽略?

【问题讨论】:

  • 您评估过 HelpNavigator 了吗?

标签: c# .net wpf processstartinfo


【解决方案1】:

该问题与通过网络打开文件有关,出于安全原因,MS 默认已阻止该文件。

以下修复适用于直接打开文件: https://www.helpscribble.com/chmnetwork.html

但是,当通过子进程打开时,这不起作用(加载文件,但没有 HTML 内容)。

解决方案:将所有 .chm 文件复制到本地目录,例如 C:/help/ 并从那里读取。

【讨论】:

    猜你喜欢
    • 2015-03-30
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 2013-01-16
    • 2017-03-10
    • 2014-04-13
    相关资源
    最近更新 更多