Отправляет email-рассылки с помощью сервиса Sendsay

[prg] C# запретить определенному процессу запускать браузер

Здравствуйте!
Есть одно приложение, которое периодически запускает браузер со своей
страницей.
Запускает в отдельном окне.
Запускает браузер по умолчанию.
Запускает как-то странно, что иногда браузер просится установится по
умолчанию, хотя он и так установлен таковым.
Нового экземпляра процесса браузера в процессах не появляется.
Если средствами Windows 7 запретить данному приложению запускать файлы, то и
оно не стартует, так как после запуска в процессах висят две копии данного
приложения. Видно, что себя запускает от админа.
Нашел несколько примеров, которые ловят открытые и открывающиеся окна, но не
хочу идти методом тыка.
Нужен пример, как у открытого окна получить имя, либо ID процесса, который
открыл данное окно.
Весь пример использует WinAPI. Конкретно user32.dll
Поковыряв его и почитав нашел такое:
https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-getwindowthreadprocessid
GetWindowThreadProcessId
описание
Retrieves the identifier of the thread that created the specified window
and, optionally, the identifier of the process that created the window.
Возвращает идентификатор потока, который создал указанное окно и, при
необходимости, идентификатор процесса, который создал окно
Подойдет чтобы поймать процесс, который запустил окно браузера или нет?
Если не подойдет, то очень прошу посоветовать что-то полезное.
Заранее спасибо!

Ответить   Thu, 11 Oct 2018 17:18:36 +1000 (#3586482)