我想从与关联应用程序的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
两个示例中的字符串代表尝试打开的文件的完整路径。现在,一切正常,除了使用ACDSee app的(jpg)图像。Irfanview协会运作良好,MS Office文件也是如此。尝试打开与acdsee关联的jpg图像后,它仅在通知区域中运行acdsee而不打开文件。
我发现,在* .jpg图像的注册表CLASSES_ROOT中,有一个ACDSee.JPG值作为关联的应用程序,在此键下的shell- > Open-> Command中有一个路径:
"C:\Program Files\ACD Systems\ACDSee\ACDSee.exe" /dde
而且我觉得这很奇怪/dde
是原因,为什么我无法打开文件。我意识到在同一个reg key shell-> Open中,有一些DDEExec
键值[open("%1")]
对于Irfan View或其他已检查的应用程序,没有ddeexec,只有普通命令,例如
"C:\Program Files (x86)\IrfanView\i_view32.exe" "%1"
可以在将%1交换为文件名之后从命令行运行,但是我无法从命令行中的acdsee条目运行命令:(
所以我的问题是,我该如何设置ProcessStartInfo
对象以确保它可以像双击资源管理器中的标准文件一样运行所有文件DDEExec
?还有其他DDEExec
我应该知道的东西吗?谢谢你,对不起我
Process.Start(file);
。