Jak pobrać coś z listboxa z innego programu

Odpowiedz Nowy wątek
2005-07-07 09:43

Rejestracja: 14 lat temu

Ostatnio: 11 lat temu

0

Witam

Mam taki problemik i nie wiem jak sie do niego zabrac zabrakło mi pomysłów.

Pobieram sobie uchyty okien z innej aplikacji z formy która wyskakuje i jedno z okien typu CHILD jest listboxem i teraz nie wiem jak pobrać wartości elementów z tego listboxa. texty z okien których pobrałem uchwyty pobieram tak jak było na forum

chwyt_temp:=getwindow(uchwyt_temp,gw_child);
a potem
next_uchwyt:=getnextwindow(uchwyt_temp,GW_HWNDNEXT);

tyle ze to nie działa przy pobieraniu textu z listboxa

a potem
text:=NT_InternalGetWindowText(next_uchwyt);

Czy ktoś wie jak trzeba by to zrobić ?
pozdrawiam
Seba

//-------------------------------------------------------------------
function NT_InternalGetWindowText(Wnd: HWND): string;
type
 TInternalGetWindowText = function(Wnd: HWND; lpString: PWideChar;
  nMaxCount: Integer): Integer;
 stdcall;
var
 hUserDll: THandle;
 InternalGetWindowText: TInternalGetWindowText;
 lpString: array[0..MAX_PATH] of WideChar;
 oemStr: PChar;
begin
 Result  := '';
 hUserDll := GetModuleHandle('user32.dll');
 if (hUserDll > 0) then
 begin @InternalGetWindowText := GetProcAddress(hUserDll, 'InternalGetWindowText');
  if Assigned(InternalGetWindowText) then
  begin
   InternalGetWindowText(Wnd, lpString, SizeOf(lpString));
   Result := string(lpString);
  end;
 end;
end;

Pozostało 580 znaków

2005-07-07 12:14

Rejestracja: 17 lat temu

Ostatnio: 8 lat temu

0

SendMessage i komunikaty: LB_GETCOUNT, LB_GETTEXT.


Szymek

<span style="color: blue">"Nie twierdzę, że kobiety są głupie,
zostały stworzone na podobieństwo mężczyzn...
"</span> - George Eliot<span style="color: green">

Pozostało 580 znaków

2005-07-07 12:58

Rejestracja: 14 lat temu

Ostatnio: 11 lat temu

0

Witam dzieki za odpowiedz ale jak ma być zwrocony string ?
sendmessage daje wartosc BOOL
robie tak :
postmessage(uchwyt_okna,LB_GETCOUNT,0,0);

postmessage(uchwyt_okna,LB_GETTEXT,index, wpisać inf o adresie zmiennej string);
tylko cały czas wywala błędy ze uncompatible types
probowałem jako adres typ : point :TPoint
@str

Czy wiecie jak to dokładnie zrobić ?
pozdrawiam
Seba

Kopia z HELPA
LB_GETTEXT
wParam = (WPARAM) index; // item index
lParam = (LPARAM) (LPCTSTR) lpszBuffer; // address of buffer

Pozostało 580 znaków

2005-07-07 14:03

Rejestracja: 15 lat temu

Ostatnio: 6 lat temu

0

Kiedyś coś takiego pisałem - wyciąganie z kontrolki Panelu Sterowania wszystkich zainstalowanych języków klawiatury. Przejrzyj kod źródłowy, zawiera dużo komentarzy - na pewno znajdziesz tam odpowiedź.

http://4programmers.net/file.php?id=1814

Pozostało 580 znaków

2005-07-07 14:58

Rejestracja: 14 lat temu

Ostatnio: 11 lat temu

0

Dzieki przestudiuje w domu
pozdrawiam
Seba

Pozostało 580 znaków

Odpowiedz

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