Rozróżnianie okien

Odpowiedz Nowy wątek
2011-07-27 17:43
Początkujący
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ć?

Pozostało 580 znaków

2011-07-27 17:50
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.


Pozostało 580 znaków

2011-07-27 23:44
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;

Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
Faktycznie masz rację. Nie kojarzyłem funkcji GetNextWindow. - olesio 2011-07-27 23:46

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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