![]() |
Count aus einer "fremden" Listbox
Jo, der titel sagts ja schon:
Wie kann ich die Count-Option einer Listbox auslesen, die sich in einer anderen Applikation befindet? |
Re: Count aus einer "fremden" Listbox
Handle des Hautpfensters holen
![]() ![]() ![]() ![]() |
Re: Count aus einer "fremden" Listbox
Danke für die schnelle Antwort. :)
Das Handle vom Fenster hab ich schon, aber ich komme irgendwie nicht mit den Parametern von FindWindowEx klar. Kann mir da noch jemand Tipps geben? |
Re: Count aus einer "fremden" Listbox
Delphi-Quellcode:
var
hListBox, hHandleDesFensters : HWND; begin hHandleDesFensters := FindWindow(nil, 'FormName') hListBox := FindWindowEx(hHandleDesFensters, 0, 'TListBox', nil); ItemCount := SendMessage(hListBox, LB_GETCOUNT, 0, 0); end; |
Re: Count aus einer "fremden" Listbox
Danke für den Code, aber da kommt dann immer 0 bei raus.
Und ja, ich habe 'FormName' in den Namen des Fenster geändert... :-D Oder muss ich 'TlistBox' auch noch abändern? |
Re: Count aus einer "fremden" Listbox
Moin maststef,
prüf' doch einfach, ob das Handle das FindWindowEx einen gültigen Wert enthält. Der Klassenname muss dem des Controls ensprechen, kann also, z.B., auch LISTBOX heissen. |
Re: Count aus einer "fremden" Listbox
aha, Danke.
Also mit 'LISTBOX' hat er zumindest das Handle bekommen, aber SendMessage liefert trotzdem noch 0 zurück. |
Re: Count aus einer "fremden" Listbox
DAnn würde ich sagen, dass du mal deinen Code posten solltest:
Ich würde das in etwa so machen:
Delphi-Quellcode:
SendMessage({ Hier kommt das gefunde Handle der Listbox rein... }, LB_GETCOUNT, 0, 0);
|
Re: Count aus einer "fremden" Listbox
Also so habe es ich gemacht:
Delphi-Quellcode:
hLB liefert das Handle der ListBox korrekt zurück (also ich nehme mal an das es das von der ListBox ist, denn eine andere ListBox ist in dem Fenster 'Erkennungsliste' nicht).
procedure TForm1.Button1Click(Sender: TObject);
var hLB, hWindow : HWND; itemcount: integer; begin hWindow := FindWindow(nil, 'Erkennungsliste'); hLB := FindWindowEx(hWindow, 0, 'LISTBOX', nil); ItemCount := SendMessage(hLB, LB_GETCOUNT, 0, 0); label1.Caption := inttostr(ItemCount); end; ItemCount ist immer 0. 'Erkennungsliste' ist übrigens das Fenster von AntiVir, wo drinsteht welche Viren es erkennt und ich wollte schon immer mal wissen, wie viele das sind... :D |
Re: Count aus einer "fremden" Listbox
Das ist ein Listview und keine Listbox. FensterKlasse: SysListview32.
Delphi-Quellcode:
uses
commctrl; procedure TForm1.Button1Click(Sender: TObject); var hWnd: Cardinal; hListview: Cardinal; ItemCount: Cardinal; begin hWnd := FindWindow(nil, 'Erkennungsliste'); if hWnd <> 0 then begin hListview := FindWindowEx(hWnd, 0, 'SysListview32', nil); ItemCount := SendMessage(hListview, LVM_GETITEMCOUNT, 0, 0); ShowMessage(IntToStr(ItemCount)); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz