002
16.03.2006, 20:57 Uhr
~GismoLupo
Gast
|
Hallo und vielen Dank für Deine Antwort. Nur leider funzt das auch nicht so wie ich mir das vorstelle. Dabei spielt es auch keine Rolle ob ich nun in die Statuszeile schreibe oder aus ihr lese. Hier mein aktueller Code in dem ich versuche aus der Zeile zu lesen. ( Mein Compiler ist übrigens der C++ Builder 6 )
Im Beispiel habe ich mit Outlook Express experimentiert.
HWND hwnd; HWND Child_hwnd; char *zPuffer = NULL; int Len;
//Ermittelt das Outlook Window-Handle mit Hilfe der Class hwnd = FindWindow("Outlook Express Browser Class", NULL); if(hwnd != 0) //<- Wenn Window-Handle gefunden, hier weiter { //Prüft, ob ein ChildWindow mit dem Classennamen "msctls_statusbar32" //existiert. Child_hwnd = FindWindowEx(hwnd, NULL, "msctls_statusbar32", NULL); if(Child_hwnd != 0) //<- Wenn Window-Handle gefunden, hier weiter { Len = SendMessage(Child_hwnd, SB_GETTEXTLENGTH, 1, 0);
zPuffer = new char [Len + 1];
SendMessage(Child_hwnd, SB_GETTEXT, 1, (LPARAM)zPuffer);
frmMain->Memo1->Lines->Add(LPARAM(zPuffer));
delete zPuffer; } }
Die folgende Methode mit WM_GETTEXT oder auch mit WM_SETTEXT funktioniert prima aber eben nur mit dem Panel 0 der Statuszeile und auch mit anderen Objekten.
char Puffer[256];
//Fragt den Objekt-Text ab SendMessage(Child_hwnd, WM_GETTEXT, 255, int(Puffer));
frmMain->Memo1->Lines->Add(Puffer);
Komme da irgendwie nicht klar. Hast Du da vielleicht auch noch eine Idee ?
MfG Andreas |