(WinAPI) Fragen zu WM_ Messages
-
Hi,
jetzt stehe ich vor nem kleinen Problem, wo ich nicht mehr mit Hilfe der MSDN weiter komme. Aber ihr wisst bestimmt Rat, nit wahr? . Also, ich benutze den folgenden Code um ICQ zu lokalisieren und dann die Listbox mit den Usern zu bekommen:code:
#include <windows.h> #include <stdio.h> int main(void) { HWND hICQ; HWND hICQUserList; char szBuffer[1024]; hICQ = FindWindow(NULL,"[DIE ICQ NUMMER HIER]"); if(hICQ==NULL) { printf("ICQ konnte nicht gefunden werden!"); return(1); } hICQUserList = FindWindowEx(hICQ,NULL,"ListBox",NULL); if(hICQUserList==NULL) { printf("ICQ Benutzerliste konnte nicht gefunden werden!"); return(1); } SendMessage(hICQUserList,WM_GETTEXT,(WPARAM)sizeof(szBuffer),(LPARAM)&szBuffer); printf("%s",szBuffer); return(0); }
Ich weis, es ist nit gerade elegant gelöst, aber ich will mit dem Code keinen Wettbewerb gewinnen . Also nun zu meinem beiden Problemen:
1. FindWindowEx Prob
Wenn ich FindWindowEx nur mit der Angabe eines Parent Windows und den namen der Klasse (in meinem Fall "ListBox") aufrufe, kann es ja sein, dass mehrere Fenster vorhanden sind. Wie kann ich nun auch ein weiteres "Fenster" ermitteln. Gibt es da so was wie "GetNextWindow()" ?!?2. SendMessage Problem
Wie kann ich alle Einträge einer Listbox eines fremden Fensters ermitteln, wenn ich nur den HWND der Listbox besitze?!Vielen Dank im voraus.
mfg
David
-
Warum hast du nicht ins WinAPI-Forum gepostet?
zu 1. Bei FindWindowEx einfach für hwndChildAfter das Handle des vorhergehenden Aufrufs einsetzen
zu 2. Probier es mal so: Mit LB_GETCOUNT die Anzahl der Items ermitteln und dann mit LB_GETTEXT den jeweils zugehörigen Text