最佳答案
我想请求帮助打开一个文件从 c # 应用程序与相关的应用程序。 我试过了:
ProcessStartInfo pi = new ProcessStartInfo(file);
pi.Arguments = Path.GetFileName(file);
pi.UseShellExecute = true;
pi.WorkingDirectory = Path.GetDirectoryName(file);
pi.FileName = file;
pi.Verb = "OPEN";
Process.Start(pi);
或者这样:
Process.Start(file);
其中两个示例中的字符串 file
表示试图打开的文件的完整路径。现在,除了 (jpg)图像与 ACDSee 应用程序,一切都运转正常。Irfanview 协会运作良好,MS 办公文档也是如此。在尝试打开与 acdsee 关联的 jpg 映像之后,它只是在通知区域运行 acdsee,并且不打开文件。
我发现,在注册表 类 _ 根中 * 。Jpg 图片,有一个 ACDSee.JPG 值作为相关的应用程序,在这个键下有一个路径在 Shell-> Open-> Command:
"C:\Program Files\ACD Systems\ACDSee\ACDSee.exe" /dde
我认为这个奇怪的 /dde
是原因,为什么我不能打开文件。我意识到在同一个 reg 键 Shell-> Open中有一些值为 [open("%1")]
的 DDEExec
键条目
对于 Irfan 视图或其他已检查的应用程序,没有 ddeexec,只有普通的命令,如
"C:\Program Files (x86)\IrfanView\i_view32.exe" "%1"
在将% 1换为文件名 ,但是我无法从命令行中的 acdsee 条目运行该命令: (之后,可以从命令行运行
所以我的问题是,我怎样才能将 ProcessStartInfo
对象设置为 确保它将运行所有文件,就像它在资源管理器中那样,通过双击标准和这个 DDEExec
?还有其他类似 DDEExec
的东西我需要注意的吗?
非常感谢和对不起我的 EN
更新 : 因为这个问题仍然得到赞成票,我想澄清一下,接受的回答是有效的。我只对旧版本的 ACDSee 有问题,而对 Process.Start
命令或 jpg
扩展没有问题。