代码之家  ›  专栏  ›  技术社区  ›  Blair

使用processstartinfo打开chm

  •  1
  • Blair  · 技术社区  · 6 年前

    我正在尝试使用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 .

    为什么这两种传递参数的方法不等价?为什么在调用进程时忽略书签。启动?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Blair    6 年前

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

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

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

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

    推荐文章