В инете достал функцию опенпроцесс. Через нее пытаюсь достать хэндл лкна оприаясь на PID процесса.
Ниже привел пример посылки сообщения.
Проблема в том, что седмессэйдж от всех процессов возвращает ноль. ( в доке по функции 0 - процесс висит, не ноль окно дало ответ не запрос соответственно окно не висит ).
Прояните, что делаю не так ...
Function READ_PC_IN_RAM : string;
var
ContinueLoop : BOOL;
FSnapshotHandle : THandle;
FProcessEntry32 : TProcessEntry32;
begin
FSnapshotHandle := CreateToolhelp32Snapshot
(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,
FProcessEntry32);
while integer(ContinueLoop) <> 0 do
begin
SendMessageTimeOut (
OpenProcess(STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or $0FFF, True, FProcessEntry32.th32ProcessID),
WM_NULL,
0,
0,
SMTO_NORMAL or SMTO_ABORTIFHUNG,
100,
Res);
ContinueLoop := Process32Next( FSnapshotHandle, FProcessEntry32 );
INC( RD );
end;
end;