Ersatz für system()-Kommando ohne DOS-Fenster

Padd_y

Mitglied
Hallo
Ich möchte -bevor mein MFC-Dialog-Programm einen neuen Stand erzeugt- einen Datei-Copy des bisherigen auf .bak durchführen.
Der Befehl..
system("copy C:\\data\\questions.wwm C:\\data\\questions.wwm.bak");
..funktioniert tadellos.
Allerdings wird kurzzeitig ein DOS-Fenster geöffnet, was zu einem unschönen Bildschirmgeflacker führt.:mad:

Ich habe mich daher gefragt, ob man das nicht eleganter hinkriegen kann.
Der Returncode des copy ist mir dabei egal.
Habe nun intensiv das Forum durchforstet und bin auf ShellExecute gestoßen.
Die Zieldatei entsteht aber leider nicht! (auch nicht, wenn ich die bisherige Variante vorher entferne)

Aufrufversuche:
ShellExecute(0,"open","copy C:\\data\\questions.wwm C:\\data\\questions.wwm.bak","",0,SW_HIDE);
ShellExecute(0,"open","copy","C:\\data\\questions.wwm C:\\data\\questions.wwm.bak",0,SW_HIDE);
ShellExecute(0,"open","copy",_T("C:\\data\\questions.wwm C:\\data\\questions.wwm.bak"),0,SW_HIDE);
ShellExecute(0,"open","C:\\windows\\system32\\cmd.exe","copy C:\\data\\questions.wwm C:\\data\\questions.wwm.bak",0,SW_HIDE);


Was mache ich falsch oder geht das gar nicht mit ShellExecute?
Danke
 
Besten Dank für die prompte Antwort - das klappt perfekt :)

Mich würde zwar auch interessieren, weshalb der ShellExecute nicht läuft, aber das ist natürlich nur das i-Tüpfelchen.

Bin auf jeden Fall happy, daß das soo einfach geht!
 
Hi.
Mich würde zwar auch interessieren, weshalb der ShellExecute nicht läuft, aber das ist natürlich nur das i-Tüpfelchen.
ShellExecute ist dafür einfach nicht gedacht. ShellExecute wird benutzt um bestimmte Aktionen (wie z.B. Öffnen, Drucken, Suchen) auf Dateien auszuführen (siehe http://msdn.microsoft.com/library/d...m/shell/reference/functions/shellexecute.asp). Es wird dabei keine DOS-Shell gestartet die dann den copy Befehl verarbeiten würde.

Gruß
 

Neue Beiträge

Zurück