Fensterüberwachung - Problem EOutOfResources (handle ungültig)



  • Hallo

    ich überwache ein anderes "fremdes" Programmfenster und bekomme nach einiger Zeit immer einen Programmabbruch weil das Handle veraltet sein.

    So hohle ich mir das handle :

    //---------------------------------------------------------------------------
    BOOL CALLBACK ShowAllWindows(HWND hwnd,LPARAM lParam)
    {
      char pcWinTitle[256];
      AnsiString Titel;
    
      if(!GetWindow(hwnd, GW_OWNER))
      {
        GetWindowText(hwnd, pcWinTitle, 255);
        Titel = pcWinTitle;
        if ( Titel.AnsiPos("Tisch") != 0 )
          Fenster = hwnd;
      }
      return true;
    }
    

    Wie bekomme ich den Fehler weg ?

    Pronto451



  • Hallo,

    ich habe leider immer noch keine Lösung gefunden. Auch wenn ich mir das handle mit

    Fenster = FindWindow(0,Titel.c_str());
    

    geben lasse, läuft es nach einiger Zeit aus und wird ungültig. Eine besondere Systemauslastung oder zu wenige Resourcen können es nicht sein, das habe ich überprüft.

    Pronto451



  • Warum holst du dir das Handle nicht genau dann wenn du es brauchst? Da die Fensterhandles von Windows verwaltet werden, weiß man ja nie was damit passiert.



  • Hallo

    ich brauche das Handle ständig, da ich den Inhalt des Fernsters überwache.
    Selbst wenn ich mir zwischenzeitlicht das handle neu hohle, wird es mit der Zeit ungültig ???

    Pronto451


Anmelden zum Antworten