» Получаем сведения о процессе по HWND окна

K.A.V.
www.oszone.net
22.02.2010
Автор: K.A.V.
Последнее обновление: 17.05.2014

Данный пример кода позволит вам получить следующую информацию, зная HWND окна программы:
Для начала подключим "FileFunc.nsh", для фильтрования полного пути в образ процесса
!include "FileFunc.nsh"

На примере рассмотрим получение сведений о процессе "Блокнота", запустим его и пропишем поиск окна в скрипте командой FindWindow:
FindWindow $0 "notepad" ""

 System::Call 'user32::GetWindowThreadProcessId(ir0, *l.r1)' ; получаем PID процесса
 System::Call 'kernel32::OpenProcess(i0x0400|0x0010, i0, ir1)i.r2
 System::Call 'psapi::GetModuleFileNameExA(ir2, i0, t.r2, i260)' ; получаем полный путь к файлу приложения
 ${GetFileName} "$2" $3 ; получаем образ процесса
Результат в $1 - PID процесса
Результат в $2 - полный путь к файлу программы
Результат в $3 - образ процесса

Конечно же, можно получить гораздо больше данных с помощью WinAPI функций, это всего-лишь небольшой пример ;)