我想通過在我的代碼中使用批處理命令將文件複製到目標。如何在不顯示控制檯的情況下調用_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