5

情况如下:我正在尝试启动一个应用程序,但我不知道 .exe 的位置。现在,如果文件扩展名已注册(在 Windows 中),我可以执行以下操作:

Process.Start("Sample.xls");

但是,我还需要传递一些命令行参数。我无法让它工作

   Process p = new Process();
   p.StartInfo.FileName = "Sample.xls";
   p.StartInfo.Arguments = "/r";  // open in read-only mode
   p.Start();

关于解决这个问题的机制有什么建议吗?

编辑@aku

我的 StackOverflow 搜索能力很弱;我没有找到那个帖子。虽然我通常不喜欢查看注册表,但这是一个很好的解决方案。谢谢!

4

2 回答 2

4

使用答案中的我的代码,您可以获得与 xls 扩展名关联的命令。然后你可以将此命令传递给Process.Start方法。

于 2008-08-30T12:29:30.643 回答
2

如果您查询注册表,您可以检索有关已注册文件类型的数据,然后直接通过命令行参数调用应用程序。有关检索文件类型的 shell 信息的示例,请参阅以编程方式检查和设置文件类型。

于 2008-08-30T12:29:07.183 回答