执行命令,如开始>在C#中运行

时间:2014-01-01 15:08:11

标签: c# .net pinvoke

我想创建一个像Start > Run这样的命令执行程序。该应用程序有TextBox,当用户输入命令例如:notepad "C:\test.txt"时,它应该打开带有此文件的记事本,或者%PROGRAMFILES%它应该打开'Programs Files'目录。

对于%PROGRAMFILES%和其他Windows变量,我可以使用Environment.ExpandEnvironmentVariable并获取其路径并转到Process.Start

对于记事本,我可以拆分空格,第一部分放在FileName,其余字符串放在Arguments的{​​{1}}。

但我想知道的是,Start>跑步?有没有像我可以执行整个命令而不拆分命令行或扩展变量?也许用pinvoke?

1 个答案:

答案 0 :(得分:1)

据我所知,运行对话框是通过调用ShellExecuteEx来实现的。您可以使用Process.StartUseShellExecute实现相同的目标。您需要扩展环境变量,并将命令拆分为文件名和参数。您已经在您的问题中描述了如何执行此操作,并且据我所知,“运行”对话框的功能没有编程接口。

但是,您可以通过编程方式执行的操作是显示“运行”对话框。创建请求Shell接口的IShellDispatch对象的实例,然后调用FileRun方法。