【问题标题】:How to call _wsystem without showing console?如何在不显示控制台的情况下调用 _wsystem?
【发布时间】:2011-01-12 16:30:42
【问题描述】:

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

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

但是每次调用_wsystem都会提示一个控制台窗口,很不爽。

有没有办法在不显示控制台窗口的情况下调用 _wsystem?还是有其他选择?

【问题讨论】:

标签: c++ windows batch-file


【解决方案1】:

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

但是要将文件从一个地方复制到另一个地方,请跳过外部程序,只需调用CopyFile

【讨论】:

  • SHFileOperationFO_COPY,如果需要漂亮的图形进度显示。
【解决方案2】:

当有一个可以为您复制文件的 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

【讨论】:

    【解决方案3】:

    将窗口最小化可以吗?见this

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-12
      • 2020-01-28
      • 2019-10-25
      • 2021-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多