unit PobieranieUchwytuOkna;

interface

uses Windows;

function GetMainWindowHandle(ProcessId :Cardinal) :THandle;

implementation

var
  uchwytSzukanegoOkna :THandle;

function ZbadajOkno(uchwytBadanegoOkna :HWND;identyfikatorSzukanegoProcesu :Integer) :LongBool;
var
  identyfikatorBadanegoProcesu :Cardinal; //[in]
begin
Result:=True;
if not uchwytBadanegoOkna=0 then Exit;
GetWindowThreadProcessId(uchwytBadanegoOkna,identyfikatorBadanegoProcesu);
if identyfikatorSzukanegoProcesu=identyfikatorBadanegoProcesu then
  begin
  uchwytSzukanegoOkna:=uchwytBadanegoOkna;
  Result:=False;
  end;
end;

function GetMainWindowHandle(ProcessId :Cardinal) :THandle;
var
  identyfikatorSzukanegoProcesu :Integer;
begin
identyfikatorSzukanegoProcesu:=ProcessId;
uchwytSzukanegoOkna:=0;
EnumWindows(@ZbadajOkno,identyfikatorSzukanegoProcesu);
Result:=uchwytSzukanegoOkna;
end;

end.
