我想通过在我的代码中使用批处理命令将文件复制到目标。如何在不显示控制台的情况下调用_wsystem?
szCommand.Format(_T("copy \"%s\" \"%s\""), szOrg, szTargetFile);
_wsystem(szCommand);
然而,每次_wsystem被调用时,一个控制台窗口会提示,这是非常不愉快。
有没有一种方法来调用_wsystem而不显示控制台窗口呢?还是其他的选择?
我想通过在我的代码中使用批处理命令将文件复制到目标。如何在不显示控制台的情况下调用_wsystem?
szCommand.Format(_T("copy \"%s\" \"%s\""), szOrg, szTargetFile);
_wsystem(szCommand);
然而,每次_wsystem被调用时,一个控制台窗口会提示,这是非常不愉快。
有没有一种方法来调用_wsystem而不显示控制台窗口呢?还是其他的选择?
要控制新程序的显示方式,请使用CreateProcess
。然后,您可以使用CREATE_NO_WINDOW
process-creation flag来隐藏控制台程序的窗口。
但是要将文件从一个地方复制到另一个地方,请跳过外部程序并拨打CopyFile
。
窗户最小化会好吗?请参阅this。
为什么在有一个Win32 API会为您复制一个文件时出现异常。它被称为CopyFile!
详情点击这里: http://msdn.microsoft.com/en-us/library/aa363851%28VS.85%29.aspx
#include <windows.h>
CopyFileA(szOrg, szTargetFile, FALSE); // use CopyFileW if szOrg and szTargetFile are unicode strings
沟控制台应用程序,并从GUI应用程序做到这一点。另见:http://flipcode.com/archives/Win32_ConsoleWindowed_Tip.shtml – 2011-01-12 06:37:13
感谢所有的答案。我最终选择了CopyFile WIN32函数。 – wengseng 2011-02-24 06:11:19