系统与ShellExecute - 差异?

xRe*_*Red 10 c++ winapi

在C++中,system()和之间的主要区别是shellexecute()什么?

在什么情况下我应该使用system()和shellexecute()?

Nic*_*las 7

在标准C++中没有这样的东西shellexecute.所以没有区别.

有Win32函数ShellExecute,但这是一个Win32函数,而不是像C++标准函数system.

ShellExecute做了不同的事情system.system(或多或少)等同于在命令行上输入命令.ShellExecute相当于双击文件(或右键单击并从列表中选择"动词").

他们真的没有任何共同之处.

  • `ShellExecute`实际上是一个非常强大的函数,它可以做很多事情.它的强大之处在于能够将"动词"指定为参数,该参数告诉函数要执行哪个动作.因此,将其表征为以特定方式表现是有些不准确的,因为可以指示它以各种方式表现.当然,这是其动力和实用性的关键.在编写Win32代码时,`ShellExecute`应始终优先于`system`. (4认同)
  • @NicolBolas:`ShellExecute`甚至不需要告诉_what_可执行文件,更不用说它位于何处.例如`ShellExecute(NULL,"open","http://stackoverflow.com/",NULL,NULL,SW_SHOWNORMAL);`将打开默认浏览器.有关一些背景信息,请参阅[KB837633](http://support.microsoft.com/kb/837633). (4认同)