5

我可以从命令行很好地运行它:

C:\Windows\System32\rundll32.exe "C:\Program Files (x86)\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen  C:\Users\Public\Pictures\Sample Pictures\Chrysanthemum.jpg

图片打开没问题。

但是,当我尝试这样做时:

exe = "C:\\Windows\\System32\\rundll32.exe \"C:\\Program Files (x86)\\Windows Photo Viewer\\PhotoViewer.dll\", ImageView_Fullscreen  C:\\Users\\Public\\Pictures\\Sample Pictures\\Chrysanthemum.jpg";
Process.Start(exe);

我得到一个

System.ComponentModel.Win32Exception:系统找不到指定的文件

我已经尝试在命令行和 C# 上使用引号,但都不能使用它们。根据我最近在 SO 上阅读的答案,不应引用最后一部分。

这是怎么回事?

4

1 回答 1

13

事实证明,必须分别传递命令和参数:

exe = "C:\\Windows\\System32\\rundll32.exe";
arguments = "\"C:\\Program Files (x86)\\Windows Photo Viewer\\PhotoViewer.dll\", ImageView_Fullscreen  C:\\Users\\Public\\Pictures\\Sample Pictures\\Chrysanthemum.jpg";
Process.Start(exe, arguments);
于 2012-06-12T02:14:57.157 回答