Привет, не понимаю в чем дело, но никак не могу удалить мьютекс, написал для удобства следующие функции, где я допустил ошибку?
Код:
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;