2011-01-12 15 views
2

私のコードでバッチコマンドを使用してファイルをコピー先に送りたい。コンソールを表示せずに_wsystemを呼び出す方法は?

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

ただし、_wsystemが呼び出されるたびにコンソールウィンドウが表示され、非常に不快です。

コンソールウィンドウを表示せずに_wsystemを呼び出す方法はありますか?それとも他の選択肢ですか?

+0

ディッチコンソールアプリケーションとGUIアプリからこれを行います。 http://flipcode.com/archives/Win32_ConsoleWindowed_Tip.shtml –

+1

すべての回答に感謝します。私は最終的にCopyFile WIN32関数を選択しました。 – wengseng

答えて

6

新しいプログラムの表示方法を制御するには、CreateProcessを使用します。次に、CREATE_NO_WINDOWprocess-creation flagを使用して、コンソールプログラムのウィンドウを非表示にすることができます。

ただし、ある場所から別の場所にファイルをコピーするには、外部プログラムをスキップして、CopyFileに電話してください。

+1

または、 '' SHFileOperation'](http://msdn.microsoft.com/en-us/library/bb762164.aspx)を 'FO_COPY'で表示します。 – ephemient

0

ウィンドウを最小化しても問題ありませんか? thisを参照してください。

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 
関連する問題