S
Spoiler
Всем привет.
Народ помогите со следующей проблемой.
Пытаюсь найти пид окна через его хэндл. Выполняю перебор всех окон и читаю их пиды.
Затем читаю все процессы в памяти и вытаскиваю из них пиды.
Проблема вот в чем, пид процесса, допустим дельфи,
не совпадает с пидом дельфийского окна.
ниже приведу примеры для извлечения пида из окна и из процесса.
Извлекаю пид окна
Ивлекаю пид процесса
Народ помогите разобраться с проблемой. Код вроде несложный, но меня помоему уже клинит с ним
Народ помогите со следующей проблемой.
Пытаюсь найти пид окна через его хэндл. Выполняю перебор всех окон и читаю их пиды.
Затем читаю все процессы в памяти и вытаскиваю из них пиды.
Проблема вот в чем, пид процесса, допустим дельфи,
не совпадает с пидом дельфийского окна.
ниже приведу примеры для извлечения пида из окна и из процесса.
Извлекаю пид окна
function EnumProc (Wd: HWnd; Param: LongInt): Boolean; stdcall;
Var
mProcessID,mThreadID : Dword;
Nm:Array[0..255] of Char;
Cs: Array[0..255] of Char;
Begin
GetWindowText(Wd,Nm,255);
GetClassName(Wd,Cs,255);
mThreadID:= GetWindowThreadProcessId(Wd, @mProcessID);
EnumProc := TRUE;
end;
procedure GetAllWindow;
Var
Wd : HWnd;
mProcessID,mThreadID : Dword;
begin
form1.L5.Items.Clear;
EnumWindows (@EnumProc, 0);
Wd:=FindWindow( 0, 0 );
While ( Wd <> 0 ) do
Wd:=GetNextWindow(Wd,GW_HWNDNEXT);
end;
Ивлекаю пид процесса
procedure TForm1.Button2Click(Sender: TObject);
var
ContinueLoop : BOOL;
FSnapshotHandle : THandle;
FProcessEntry32 : TProcessEntry32;
HProgramm_ID : Cardinal;
begin
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
while integer(ContinueLoop) <> 0 do
begin
HProgramm_ID := FProcessEntry32.th32ProcessID;
form1.L.Items.Add( ExtractFileName( FProcessEntry32.szExeFile ) );
form1.L1.Items.Add( inttostr( HProgramm_ID ) );
ContinueLoop := Process32Next( FSnapshotHandle, FProcessEntry32 );
end;
end;
Народ помогите разобраться с проблемой. Код вроде несложный, но меня помоему уже клинит с ним