Przechwycenie zmiany w oknie obcego programu???

0

Jest sobie setup obcego programu. Moj program odpala ten setup przez ShellExecute. W tym programie pojawia sie 1 okno, które kopiuje jakieś pliki, 2 które też coś robi i 3 no i dopiero w 4 oknie pojawiają się kontrolki do wpisania nr seryjnego (wyglądają jak TEdit ale nie jestem pewien - produkt jest microsoftu).
Umiem wypelnić te pola nr seryjnym poprzez keybdevnt ale pytanie jest takie:
jak wykryć moment kiedy pojawia się 4 okno???[!!!]
nie chce używać timera po nie mogę założyć, że po określonym czasie sie pojawia to okno bo na różnych maszynach i cd to inaczej działa.

// Następny raz za takie wygłupy z czcionką post poleci do kosza - deti

0

Może tak?

type
  TDetect = class(TThread)
  private
    { Private declarations }
  protected
    procedure Execute; override;
  end;

...

procedure TDetect.Execute;
var
  hdn: HWND;
begin
  SetPriorityClass(GetCurrentProcess, IDLE_PRIORITY_CLASS);
  while (not Terminated) do
    if FindWindow(nil, 'Twoje_Okno') <> NULL then
    begin
      hdn := FindWindow(nil, 'Twoje_Okno');
      // Tutaj czynnosci
    end;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1