在不知道exe位置的情况下启动带有命令行参数的文件?

时间:2020-03-05 18:45:25  来源:igfitidea点击:

情况是这样的:我正在尝试启动一个应用程序,但是我不知道.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搜索技能很弱;我没有找到那个帖子。尽管我通常不喜欢查看注册表,但这是一个很好的解决方案。谢谢!

解决方案

回答

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

回答

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