Datei mit CreateProcess verschieben
-
Hallo Leute,
ich habe nach langer Zeit mal wieder eine Frage. Ich muss innerhalb einer Installationsroutine eine vorhandene Datei verschieben und später wieder zurückschieben. Ich wollte das mit CreateProcess machen, da system eine SHell aufmacht, was sich dann über die Installation legt.Ich benutze den Shell-Befehl move, was mit CreateProcess aber nicht läuft. BEi system läuft es jedoch. Mein Code sieht so aus:
STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) ); // Start the child process. CreateProcess( NULL, // No module name (use command line). "move c:\\x\\x.dll c:\\", // Command line. NULL, // Process handle not inheritable. NULL, // Thread handle not inheritable. FALSE, // Set handle inheritance to FALSE. 0, // No creation flags. NULL, // Use parent's environment block. NULL, // Use parent's starting directory. &si, // Pointer to STARTUPINFO structure. &pi ); // Pointer to PROCESS_INFORMATION structure.Das funktioniert nicht. Testweise habe ich mal msiexec gestartet, und das klappt. Ich habe die move.exe auch gar nicht finden könne. Muss ich da eine andere dll mit inkludieren?
Danke euch
AkonF
-
Es gibt keine move.exe. Das ist ein Teil des Kommandozeileninterpreters. Es würde wohl mit cmd.exe /C move ... funktionieren. Aber warum nicht einfach CopyFile() verwenden?
-
sorry ich meinte MoveFile()
-
Versuch es mal mit der MoveFile Funktion. Das sollte viel eifnacher sein: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/movefile.asp
mfg.
edit: ich war zu langsam
-
Ich würde einfach MoveFile benutzen.
edit: Mist zu langsam.
-

-
Mobble schrieb:
Ich würde einfach MoveFile benutzen.
edit: Mist zu langsam.
haha
-
MoveFile funzt ja nur auf der selben Partition.
-
Ich Rate zu "SHFileOperation"
-
Hey Danke,
auf diese einfache Sache bin ich gar nicht gekommen... habe MoveFile verwendet
-
Nimm SHFileOperation.