我想创建一个像Start > Run
这样的命令执行程序。该应用程序有TextBox
,当用户输入命令例如:notepad "C:\test.txt"
时,它应该打开带有此文件的记事本,或者%PROGRAMFILES%
它应该打开'Programs Files'目录。
对于%PROGRAMFILES%
和其他Windows变量,我可以使用Environment.ExpandEnvironmentVariable
并获取其路径并转到Process.Start
对于记事本,我可以拆分空格,第一部分放在FileName
,其余字符串放在Arguments
的{{1}}。
但我想知道的是,Start>跑步?有没有像我可以执行整个命令而不拆分命令行或扩展变量?也许用pinvoke?
答案 0 :(得分:1)
据我所知,运行对话框是通过调用ShellExecuteEx
来实现的。您可以使用Process.Start
和UseShellExecute
实现相同的目标。您需要扩展环境变量,并将命令拆分为文件名和参数。您已经在您的问题中描述了如何执行此操作,并且据我所知,“运行”对话框的功能没有编程接口。
但是,您可以通过编程方式执行的操作是显示“运行”对话框。创建请求Shell
接口的IShellDispatch
对象的实例,然后调用FileRun
方法。