Programm soll sein .exe kopieren
-
Hi Community
Ich will ein Programmschreiben, welches sich selbst in ein von mir angegebenen Pfad kopiert. Kennt jemand eine Möglichkeit dies in C (oder C++) zu realisieren?Gruss
L4z0r
-
probiers mal mit
int main(int argc, char *argv[]) { char buffer[100]; sprintf(buffer,"copy %s c:\pfad\zu\dem\ordner\%s",argv[0],argv[0]); system(buffer); }
-
Das wird zumindest dann nicht richtig funktionieren, wenn in argv[0] mehr als nur der nackte Dateiname drinsteht.
Aber da das hier eh nur Plattformspezifisch gelöst werden kann und die Plattform eindeutig Windows ist, verschiebe ich mal ganz frech nach WinAPI :xmas1:
-
Dieser Thread wurde von Moderator/in TactX aus dem Forum ANSI C in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
naja wenns kopieren ist kannst de auch auf filestreams zurück greifen ... alles reinstreamen und dann alles wieder raus ...
-
Mit GetModuleFilename den Namen der EXE besorgen und mit CopyFile(Ex) kopieren.
-
Ich hab mir sowas schonma gebastelt
do{ fread(input, sizeof(input), 1, read); fwrite(input, sizeof(input), 1, write); }while(!feof(read));read sieht bei mir so aus:
read = fopen(argv[0],"rb");und das funktioniert auch.

vllt nicht "elegant" gelöst, aber hauptsache es funktioniert
-
Das könnte funktionieren (nicht getestet):
#include <Windows.h> bool CopyExeTo(const PTCHAR pszDestPath) { TCHAR szThisModule[MAX_PATH + 1]; GetModuleFileName(NULL, szThisModule, sizeof(szThisModule) / sizeof(szThisModule[0]); return (static_cast<bool>(CopyFile(szThisModule, pszDestPath, FALSE))); }