Показать сообщение отдельно
  #6  
Старый 16.01.2016, 22:11
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Просмотрел дружественную топку, коллеги там вам полность раскрыли тему, набросали инфы - вагон, бери и собирай, в чём загвоздка-то?

З.Ы. Как подсказка, примерный алгоритм-выжимка из тамошних постов:

1) Вызываем OpenMutex - это чтоб убедиться, что он есть плюс определить тип объекта на шаге 3
2) Используем NtQuerySystemInformation с классом SystemHandleInformation=2 для получения списка всех хендлов живущих в системе
3) Ищем в списке хендл открытого мьютекса и определяем его тип посредством ObjectTypeNumber
4) Ищем в списке хендлы мьютексов требуемого процесса по его PID и ObjectTypeNumber
5) Если нашли более одного, то проверяем соответствие заданному имени: OpenProcess + NtQueryObject с классом ObjectNameInformation=1
6) Если нашли соответствие, то убиваем найденный/е хендл/ы вызовом DuplicateHandle c параметром DUPLICATE_CLOSE_SOURCE

вроде всё
Ответить с цитированием