ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

08.12.2008, 19:48
|
|
Новичок
Регистрация: 08.12.2008
Сообщений: 8
Провел на форуме: 4529
Репутация:
1
|
|
Что я делаю нетак?
Хочу организовать метод doublerun на делфи. Суть такова - один процесс следит запущен ли другой а другой следит за первым. Если один из них умерает другой запускает его опять. Уже делал раз такое - работало наура. Сорцы потеряны. Вот собственно код, непойму почему неработает.
Код:
{$APPTYPE CONSOLE}
program test;
uses
SysUtils, Windows, Shellapi;
const
mutex1 :string = 'ABDCDBEFBDEBFAB';
mutex2 :string = 'EFDACBDFEABDCDF';
Begin
if (OpenMutex(MUTEX_ALL_ACCESS, false, Pchar(mutex1)) = 0) then
Begin
CreateMutex(nil, false, Pchar(mutex1));
Writeln(mutex1);
End else Begin
if (OpenMutex(MUTEX_ALL_ACCESS, false, Pchar(mutex2)) = 0) then Begin
CreateMutex(nil, false, Pchar(mutex2));
Writeln(mutex2);
End
End;
while true do begin
sleep(1000);
writeln(OpenMutex(MUTEX_ALL_ACCESS, false, Pchar(mutex1)));
writeln(OpenMutex(MUTEX_ALL_ACCESS, false, Pchar(mutex2)));
if (OpenMutex(MUTEX_ALL_ACCESS, false, Pchar(mutex1)) > 0) and
(OpenMutex(MUTEX_ALL_ACCESS, false, Pchar(mutex2)) > 0) Then
Begin
end else Begin
Shellapi.ShellExecute(0,'open',pchar(Paramstr(0)),'','',1);
sleep(10);
End;
end;
End.
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|