我正在尝试使用C#打开一个旧的chm (编译的超文本标记语言)文件到指定的书签-不要问为什么;)
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调用时,为什么我的书签被忽略?
发布于 2018-07-26 12:21:25
该问题与通过网络打开文件有关,出于安全原因,MS默认阻止了该文件。
以下修复适用于直接打开文件:https://www.helpscribble.com/chmnetwork.html
但是,通过子进程打开时,这不起作用(加载文件,但不加载HTML内容)。
解决方案:将所有帮助文件复制到本地目录,例如C:/ .chm /,并从那里读取。
https://stackoverflow.com/questions/51530315
复制相似问题