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

问题描述:

以下是这种情况:我试图启动一个应用程序,但是.exe的位置对我而言并不知道。现在,如果文件的扩展名被注册(在Windows),我可以这样做:使用命令行参数启动文件而不知道exe的位置?

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

我*的搜索能力较弱;我没有找到那个帖子。虽然我一般不喜欢登录注册表,但这是一个很好的解决方案。谢谢!

使用我的代码this回答你可以得到与xls扩展相关的命令。然后你可以把这个命令传给Process.Start方法。

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