Помощь - Поиск - Пользователи - Календарь
Полная версия: Копирование программы самой себя
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Feagor
Доброго времени суток товарищи. Подскажите пожалуйста как сделать автоматическое копирование программы в определенную папку. ситуация таковая:
запускаем програмульку и при первом запуске она копирует себя допустим в програм файлс. уже 2 часа мозг ломаю, гугл и поиск не помогают))

пишу не вирус)честно)
volvo
Что именно вызывает затруднения? MoveFile (под NT) свободно переносит запущенный файл куда нужно. Выделяешь из ParamStr(0) текущую папку, смотришь, что это не "Program Files", и переносишь в другое место.

Хотя я бы такую программу (которая переносит себя в другое место самостоятельно) больше одного раза не запустил. Сразу бы снес Корзину.
Feagor
спасибо уже разобрался
сделал вот так

function GetWindowsDir : String;
var
name : array [0..255] of Char;
begin
GetWindowsDirectory(Name, SizeOf(Name));
Result:=name;
end;
begin
path:=getwindowsdir+'\system32\'+ExtractFileName(ParamStr(0));
CopyFile(pchar(ParamStr(0)),pchar(path),true);
end.


з.ы. делаю что-то типа инсталера.чтобы один раз запустил прогу, она скопировалась сразу и в дальнейшем сидела в системе

Теперь стал вопрос с таймером.
можно ли как-то организовать выполнение процедуры минут через 10 после запуска программы?
ttimer не подходит, т.к. работаю без графических форм
volvo
Так... А вот это уже похоже на несанкционированную деятельность:

Цитата
path:=getwindowsdir+'\system32\'+ExtractFileName(ParamStr(0));
Скопировал себя в windows\system32 (говорил выше про Program Files, куда ставятся программы, а лезешь в святая святых?), вроде бы завершил программу, но на самом деле - скрыл окно и запустил через 10 минут какую-то деятельность? Это не инсталлятор. Ни один вменяемый инсталлятор не будет ждать 10 минут. Сказки будешь кому другому рассказывать.

Добавлено через 54 сек.
Цитата
ttimer не подходит, т.к. работаю без графических форм
dry.gif Инсталлятор, да? Ну-ну... Тема - кандидат на Мусорку...
Feagor
прога работает в 2 режимах.сначала инсталица,
потом периодически отсылает sql запросы на сервер на проверку новых записей, с формированием локального лог файла
грю же это не вирус)))
Unconnected
Насчёт таймера - можешь организовать его на api, в гугле это есть.

Всё равно такое явное копирование самый примитивный антивирус зарэжэт smile.gif
Feagor
Цитата
Всё равно такое явное копирование самый примитивный антивирус зарэжэт

почему?
у меня каспер сидит тихо,молча.

Цитата
Насчёт таймера - можешь организовать его на api, в гугле это есть.

примерчик бы...
уже рыл гугл, вроде что-то есть, но как-то замудренно

Добавлено через 13 мин.
сделал проще заюзал
Sleep(60000);
вроде работает
volvo
Цитата
Всё равно такое явное копирование самый примитивный антивирус зарэжэт
А при запуске под пользовательским (не админским) аккаунтом получишь тихий облом (невозможность скопировать файл в системную папку). А поскольку никакой обработки ошибок нет - то ты об этом даже не узнаешь smile.gif
Feagor
Цитата
А при запуске под пользовательским (не админским) аккаунтом получишь тихий облом (невозможность скопировать файл в системную папку). А поскольку никакой обработки ошибок нет - то ты об этом даже не узнаешь

так я ручками буду запускать на каждом компе, под админом smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.