HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Что я делаю нетак?
  #1  
Старый 08.12.2008, 19:48
th13fnano
Новичок
Регистрация: 08.12.2008
Сообщений: 8
С нами: 9170196

Репутация: 1
Arrow Что я делаю нетак?

Хочу организовать метод 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.
 
Ответить с цитированием

  #2  
Старый 08.12.2008, 19:50
th13fnano
Новичок
Регистрация: 08.12.2008
Сообщений: 8
С нами: 9170196

Репутация: 1
По умолчанию

Кто поможет написать?
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.