以下是这种情况:我正在尝试启动应用程序,但我不知道.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搜索技能很弱;我没找到那个帖子。虽然我一般不喜欢窥探注册表,但这是一个很好的解决方案。谢谢!
答案 0 :(得分:4)
使用我来自this的代码,您可以获得与xls扩展相关联的命令。然后,您可以将此命令传递给Process.Start
方法。
答案 1 :(得分:2)
如果查询注册表,则可以检索有关已注册文件类型的数据,然后直接通过命令行参数调用应用程序。有关检索文件类型的shell信息的示例,请参阅Programmatically Checking and Setting File Types。