Rozróżnianie okien

0

Witam, bawię się ostatnio operacjami na FindWindow. Napotkałem problem - obsługa 2 okien o tej samej nazwie. Chciałbym, żeby program mógł obsługiwać 2 odpalone programy o tej samej nazwie (Tu Word). Jak mam kombinować?

0

Pogoogluj za przykładami funkcji EnumWindows. Następnie w procedurze obsługi EnumWindows pobieraj tytuł okna i sprawdzaj czy jest w nim słowo na ktorym Tobie zależy. Znalezione uchwyty możesz przechować w tablicy i do jej elemntów później się odwoływać. Jednak jeżeli chodzi o Word to można go przecież obslugiwać jak nie przez DDE to na pewno przez OLE i zmienne typu Variant. Jednak w tym drugim Ci nie pomoge, bo komunikowałem się tak jedynie z OO Calciem w jednej swojej aplikacji, ponieważ używam OO, a nie Office'a. Jednak w google powinno dać się znaleźć sporo przykładów jak się komunikowac z Officem.

0

olesio nie szalej z tym kombajnem EnumWindows do takiego czegoś wystarczy:

const
  TITLE = 'Kalkulator';
var
  hWin: HWND;
  buf: array[0..255] of Char;
begin
  hWin:= FindWindow(nil, TITLE);
  while (hWin <> 0) do
  begin
    GetWindowText(hWin, buf, SizeOf(buf));
    if (buf = TITLE) then
      Memo1.Lines.Add(IntToHex(hWin, 8)); //to tylko przyklad ale musisz jakos przechowywac uchwyty
    hWin:= GetNextWindow(hWin, GW_HWNDNEXT);
  end;
end;

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