使用命令行参数启动文件而不知道exe的位置?

时间:2008-08-30 12:10:51

标签: c# .net vb.net

以下是这种情况:我正在尝试启动应用程序,但我不知道.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搜索技能很弱;我没找到那个帖子。虽然我一般不喜欢窥探注册表,但这是一个很好的解决方案。谢谢!

2 个答案:

答案 0 :(得分:4)

使用我来自this的代码,您可以获得与xls扩展相关联的命令。然后,您可以将此命令传递给Process.Start方法。

答案 1 :(得分:2)

如果查询注册表,则可以检索有关已注册文件类型的数据,然后直接通过命令行参数调用应用程序。有关检索文件类型的shell信息的示例,请参阅Programmatically Checking and Setting File Types