Копирование файлов

alekssgor

Well-known member
26.05.2008
118
0
#1
Как скопировать файл .exe скачанный с инета (который был открыт но не сохранён на диске).
Задача
Файл скачан с интернета сохранён на диске и при первом запуске скажем содаётся папка в папке Program Files
и туда копируется запущенный файл(добавляется в автозагрузку и т.д)с этим всё понятно.

Как всё тоже сделать если пользователь не сохранил файл на диске, а просто открыл???
 
A

Artem325

#2
Тоже самое и произойдёт, ведь если пользователь просто открывает файл, то он сохраняется на диске во временной папке какой нибудь. Просто папка другая и всё.
 

alekssgor

Well-known member
26.05.2008
118
0
#3
Тоже самое и произойдёт, ведь если пользователь просто открывает файл, то он сохраняется на диске во временной папке какой нибудь. Просто папка другая и всё.
Спасибо.
А на WinApi как определить путь (в общем эквивалент C++Builder ParamStr(0))???????????????????
 
A

Artem325

#4
alekssgor
а как ты определяешь папку, если пользователь сохраняет программу?
 

alekssgor

Well-known member
26.05.2008
118
0
#5
alekssgor
а как ты определяешь папку, если пользователь сохраняет программу?
Я её вообще не определяю!
Просто проверю при запуске первый раз програма запущена(тоесть есть раздел в реестре с имененм программы если нет делаю так при запуске)

Код:
//Копирование файлов и папок
int MovieFiles(char* slSourceDir, char* slTargetDir, bool toCopy = true)
{
SHFILEOPSTRUCT sh;
sh.fFlags = FOF_NOCONFIRMATION|FOF_SILENT|FOF_FILESONLY;
sh.wFunc = toCopy ? FO_COPY : FO_MOVE;
sh.pFrom = slSourceDir;
sh.pTo = slTargetDir;
sh.hNameMappings = NULL;
sh.lpszProgressTitle = NULL;
return SHFileOperation(&sh);
}
mkdir("C:\\Program Files\\Программа");
MovieFiles("Программа.exe","C:\\Program Files\\Программа");//Копирую самого себя
Делаю запись в реестр
 
A

Artem325

#6
и почему же это не работает если просто запуск делается?? просто он так же в папке лежит, просто имя и путь некрасивые и всё.
 

alekssgor

Well-known member
26.05.2008
118
0
#7
и почему же это не работает если просто запуск делается?? просто он так же в папке лежит, просто имя и путь некрасивые и всё.
Да работет извиняюсь туплю.
Я вобщето про это спрашивал
//Получаем каталог программы
char str[MAX_PATH];
getcwd(str,MAX_PATH);
MessageBox(0,str,"Путь к программе",0);