2011-04-27 70 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

相關問題