2011-04-27 68 views
0

我正在寻找一种方法来运行可执行文件或脚本,而无需让cmd.exe为我执行此操作。目前我使用发射cmd.exe /C <command>,我需要为我做以下事情的过程:任何方式来解释一个命令而不运行cmd.exe?

  • 查找当前目录中的可执行文件和路径
  • 解释PATHEXT允许扩展名的脚本命令
  • 解释文件关联,例如,当我告诉它运行blah.py时运行python解释器。

需要能够运行任何的“内置”的命令,如“目录”。

是否有可能避免使用cmd.exe而基本上不重新实现所有上述功能?必须有某种shell API来完成上述事情,对吧?

回答

2

的ShellExecute应该做的正是你想要的东西 - 你可以用它来启动一个可执行文件或文件(该文件,然后用标准的应用程序打开),

http://msdn.microsoft.com/en-us/library/bb762153%28v=vs.85%29.aspx

+0

一目了然,它不似乎解决PATH或PATHEXT - 是这样,还是它实际上这样做? – 2011-04-27 09:55:04

+1

它确实(这可能是安全风险),请参阅https://buildsecurityin.us-cert.gov/bsi/articles/knowledge/coding/825-BSI.html – 2011-04-27 10:36:00

相关问题