来自C 应用程序的运行系统命令与Commandline不同

Running system command from C++ application differs from commandline

本文关键字:Commandline 不同 系统命令 运行 应用程序 来自      更新时间:2023-10-16

我想从C 应用程序执行命令。我这样使用:

system("sendEmail.exe -f someone@somewhere.com -t ...");

这在Windows Server 2008以及其他系统上都起作用。但是,它在我的新服务器(Windows Server 2012)上没有工作,它似乎可以调用命令,但从未完成。如果我在命令窗口中键入完全相同的命令,则可以正常工作。

我尝试使用

system("cmd.exe /C "sendEmail.exe -f someone@somewhere.com -t ...""); 

但这无济于事。

任何人都知道从系统调用C 和在CMD中运行的区别是什么?

编辑:问题不再可再现了。感谢您的快速答案

尝试

system("cmd.exe");

没有参数这只会打开A cmd 窗口,然后将其打开。从该窗口可以调用 sendmail.exe ,看看发生了什么。也许只是一个不同的路径设置或权限问题。

作为替代方案,您可以使用Windows API函数CreateProcess