PDA

Просмотр полной версии : [Помогите!] [MUTEX]Как удалить...


артём612
30.05.2014, 20:26
Вообщем пишу программу и столкнулся со сложностями мютексов :confused:

Суть такова

App1 - это пользовательское приложение которое я пишу
App2 - это парсер мютексов



App1(пользователь нажимает на кнопочку) : Создаётся мютех с id

App2(в цикле) : Открывает все мютексы с возможными id и в зависимости от существования принимает решение :)

App1(пользователь нажимает на кнопочку) : Удаляет мютех



Проблема :
При создании мютека всё норм но при при попытке удалить,не удаляется :(



Вот мой коддинг

Для добавления мютекса в App1
bool AddIdMutex(DWORD id)
{
StrPaste(MutexHook.HeaderHook,id);
return CreateMutexA(0,false,MutexHook.HeaderHook);
}

Для удаления мютекса в App1
bool DelIdMutex(DWORD id)
{
StrPaste(MutexHook.HeaderHook,id);
HANDLE hId = OpenMutexA(MUTEX_MODIFY_STATE,false,MutexHook.Head erHook);

if(hId)
{
ReleaseMutex(hId);
return CloseHandle(hId);
}

return false;
}



Для проверки мютекса

bool IsIdMutex(DWORD id)
{
StrPaste(MutexHook.HeaderHook,id);


HANDLE hid = OpenMutexA(MUTEX_ALL_ACCESS,false,MutexHook.Header Hook);
ReleaseMutex(hid);
CloseHandle(hid);

if(hid)return true;

return false;
}





Уже разобрался.Если кому интересно то чтобы его удалить надо закрыть все хандлы по этому мютексу(попытки открытия и создания этого мютекса)