Какой функцией я могу закрыть этот хэндл в чужом процессе если мне известен его адрес 0x15c?
if (wcsstr(objectName.Buffer, L"\\Sessions\\1\\BaseNamedObjects\\") > 0)
{
HANDLE pDeHandle;
DuplicateHandle(processHandle, (HANDLE)handle.Handle, NULL, &pDeHandle, 0, FALSE, DUPLICATE_CLOSE_SOURCE);
CloseHandle(&pDeHandle);
system("pause");
}
Код убивает мутекс, но нужный результат получается только после закрытия моей программы, как освободить, что добавить чтобы ненужно было закрывать программу.
Тут пара недочетов
HANDLE DeHandle; /*1. У вас не ссылка а нормальный таки хандл*/
if (DuplicateHandle(processHandle, (HANDLE)handle.Handle /*0x15c*/,
GetCurrentProcess() /*2.указать*/
, &DeHandle, 0, FALSE, DUPLICATE_CLOSE_SOURCE))
CloseHandle(DeHandle); /*3. Тут не надо & ставить, потому что [1]*/
else { /* ф-ция не сработала обработать ошибки*/};
system("pause");
И ссылка на DuplicateHandle
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости