如何在不显示控制台的情况下调用_wsystem?

时间:2011-01-12 06:21:49

标签: c++ windows batch-file

我想在我的代码中使用批处理命令将文件复制到目标。

    szCommand.Format(_T("copy \"%s\" \"%s\""), szOrg, szTargetFile);
    _wsystem(szCommand);

但是,每次调用_wsystem时,都会提示一个控制台窗口,这非常不愉快。

有没有办法调用_wsystem而不显示控制台窗口?还是其他任何替代方案?

3 个答案:

答案 0 :(得分:6)

要控制新程序的显示方式,请使用CreateProcess。然后,您可以使用CREATE_NO_WINDOW process-creation flag隐藏控制台程序的窗口。

但要将文件从一个地方复制到另一个地方,请跳过外部程序,然后拨打CopyFile

答案 1 :(得分:1)

为什么有一个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

答案 2 :(得分:0)

将窗口最小化是否合适?请参阅this