Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как сделать так чтобы прога скопировала сама себя


Автор: bartram 25.9.2004, 17:27
Как сделать так чтобы прога скопировала сама себя в системную папку, и поставила себя в автозагрузку(через реестр)?

Автор: _hunter 25.9.2004, 18:47
а в чем проблема?
свой путь: GetModuleFileName()
копировать файл: CopyFile()
автозапуск: http://forum.vingrad.ru/index.php?showtopic=29379

Автор: Ripper 25.9.2004, 21:17
Для каких целей интересно? =)
вот мой старый код... должен работать:
Код

procedure SetAutorun(aProgTitle,aCmdLine: string; aRunOnce: boolean );
var
 hKey  :string;
 hReg  :TRegIniFile;
begin  
 if aRunOnce then hKey := 'Once'
 else hKey := '';
 
  hReg := TRegIniFile.Create( '' );
  hReg.RootKey := HKEY_LOCAL_MACHINE;
  hReg.WriteString('Software\Microsoft\Windows\CurrentVersion\Run'
                 + hKey + #0,
                 aProgTitle,
                 aCmdLine );
  hReg.destroy;
end;
....
function WinCopyFile(FromFile, ToDir : string) : boolean;
var
F :TShFileOpStruct;
begin
F.Wnd := 0;
F.wFunc := FO_COPY;
FromFile:=FromFile+#0;
F.pFrom:=pchar(FromFile);
ToDir:=ToDir+#0;
F.pTo:=pchar(ToDir);
F.fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
result:=ShFileOperation(F) = 0;
end;
...
var
s :string;
begin
SetLength(s, 255);
GetWindowsDirectory(PChar(s), 255);
SetLength(s, StrLen(PChar(s)));
uppercase(s);
WinCopyFile(paramstr(0), s + '\MYAPL.EXE');
SetAutoRun('Myapl',s + '\MYAPL.EXE', false);

Тока все же неуверен)

Автор: bartram 25.9.2004, 21:42
Цитата(Ripper @ 25.9.2004, 21:17)
Для каких целей интересно? =) вот мой старый код... должен работать:

Просто я делаю снифер который когда обнаруживает соединение с интернетом считает все исходящие пакеты и входящие! А функции нужны для автоматизма wink.gif

Автор: Guest 26.9.2004, 10:32
Прикольно, снифер, который обнаруживает соединение с инетом, а потом читает исходящие и входящие пакеты сделать можешь, а скопировать программу куда-либо и поставить в автозагрузку - нет! ;)

Автор: bartram 26.9.2004, 10:56
Цитата(Guest @ 26.9.2004, 10:32)
Прикольно, снифер, который обнаруживает соединение с инетом, а потом читает исходящие и входящие пакеты сделать можешь, а скопировать программу куда-либо и поставить в автозагрузку - нет! ;)

Просто я забыл как это делается!
smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)