Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Что я делаю нетак? (https://forum.antichat.xyz/showthread.php?t=95403)

th13fnano 08.12.2008 19:48

Что я делаю нетак?
 
Хочу организовать метод 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.


th13fnano 08.12.2008 19:50

Кто поможет написать?


Время: 22:47