在不知道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
方法。