Показать сообщение отдельно
  #1  
Старый 29.03.2010, 16:53
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
Лампочка Не получается удалить мьютекс

Привет, не понимаю в чем дело, но никак не могу удалить мьютекс, написал для удобства следующие функции, где я допустил ошибку?

Код:
function _MutexExists(Str: String): Boolean;
var
MyMutex: THandle;
begin
MyMutex := OpenMutex(MUTEX_ALL_ACCESS, FALSE, PChar(Str));
RESULT := (MyMutex <> 0);
end;

function _DeleteMutex(Str: String): Boolean;
var
MyMutex: THandle;
begin
RESULT := FALSE;
MyMutex := OpenMutex(MUTEX_ALL_ACCESS, FALSE, PChar(Str));
if MyMutex <> 0 then
begin
RESULT := ReleaseMutex(MyMutex);
//RESULT :=
CloseHandle(MyMutex);
end;
end;

function _CreateMutex(Str: String; DelIfExists: Boolean = true): Boolean;
var
MyMutex: THandle;
begin
if _MutexExists(Str) then
begin
if DelIfExists then
_DeleteMutex(Str);
end;
MyMutex := CreateMutex(nil, FALSE, PChar(Str));
RESULT := (MyMutex <> 0);
end;
Ответить с цитированием