[C++]Kopiowanie wykonywanego pliku


(Pdmatrix12) #1

Witam! Mam do was pytanie, a mianowicie jak można skopiować dany program, który jest w tej chwili wykonywany? Tzn. program kopiuje samego siebie do danego folderu, lecz nie zna on swojego położenia. Myślę, że CopyFileA odpada. Dziękuję za jakąkolwiek pomoc :).


(Rolek0) #2

Na Windowsie do pobrania nazwy swojego exeka możesz użyć GetModuleFileName, podając NULL jako hModule.

TCHAR name[MAX_PATH+1];

GetModuleFileName(NULL, name, MAX_PATH+1);

(kostek135) #3

Jak program może nie znać swojego położenia, przecież wszystko co wykonasz na ścieżkach relatywnych wykonasz w ramach katalogu w którym znajduje się uruchomiony program. Wystarczy pobrać nazwę programu, która jest pierwszym elementem w tablicy przekazanej do main jako drugi argument.


(Pdmatrix12) #4

Dziękuję Rolek0, działa :).


(Rolek0) #5

Katalog bierzący a katalog, z którego została uruchomiona aplikacja, to dwie różne rzeczy; to, że zwykle wskazują na ten sam katalog nie ma nic do rzeczy; proces może sobie zmieniać swój katalog bierzący.