FindWindow mit variablen Fensternamen



  • Hallo,

    ich habe ein kleines Tool seid Jahren im Einsatz, das ein anderes Programm per PostMessage steuert, soweit sogut.
    Jetzt haben wir eine neue Version erhalten in der die Fensterzeile dynamisch sich verändert (Es wird Datum und Uhrzeit angezeigt.) FindWindow Findet es jetzt nicht mehr.
    Ich habe das Problem jetzt dadurch gelöst, das ich jetzt mit EnumWindows arbeite, dies ist aber nicht so effektiv wie FindWindow. Gibt es eine alternative Lösung mit FindWindows oder ... ?

    Gruss Klaus



  • gibts nich noch sowa wie GetClassName oder sowas...



  • Hallo,

    @Boris: Ich weiss leider nicht wie es mir weiterhelfen soll...

    Gruss Klaus


  • Mod

    Du könntest mit Spy++ auch die Fensterklasse ermitteln und in FindWindow nutzen. Das ist mit Sicherheit schnell. Vorausgesetzt, die Fensterklasse ist eindeutig.



  • du könntest dir mit EnumWindows() alle fenster holen und in einer callbackfunktion den fenstertitel vergleichen

    z.b.

    titel = "Fenster 14:18 Uhr"

    HWND hWnd = 0;
    
    BOOL CALLBACK func(HWND hWnd, LPARAM)
    {
        char *titel = new char[GetWindowTextLength(hWnd)];
        GetWindowText(hWnd, titel, GetWindowTextLength(hWnd));
        // hier die beiden titel vergleichen
        delete[] titel;
    }
    
    EnumWindows(func, static_cast<LPARAM>(&hWnd));
    

Anmelden zum Antworten