FindWindow,GetwindowText und Setforeground Problem bei TCppwebbrowser



  • Hallo,
    ich habe eben mal wieder ein wenig den BCB angeworfen.

    Ich möchte in meiner Anwendung, ein Browser Fenster integrieren.

    Das klappt auch.

    Allerdings klappt das wiederfinden des Hauptfensters nicht.
    Ich hab einfach das Handle von der Form genommen.

    Mein Code

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
       CppWebBrowser1->Navigate(WideString("http://www.freenet.de"));
       Timer1->Enabled=true;
       }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
    SetForegroundWindow(Form1->Handle);
    BringWindowToTop(Form1->Handle);
    SetActiveWindow(Form1->Handle);
    char *test;
    GetWindowText(
    
        Form1->Handle,	// handle of window or control with text
        test,	// address of buffer for text
        255 	// maximum number of characters to copy
       );
       MessageBox(Form1->Handle,test,"Alert",MB_OK);
       }
    //---------------------------------------------------------------------------
    

    Ich erhalt mal ein einzelnen Buchstaben oder wirre Zeichenketten, statt des normalen Form1.

    Also der Browser lädt die Testhomepage(hier Freenet). Das klappt ohne Probleme.
    Nur ich das Fenster nicht nach vorne, bzw. den richtigen Text.

    Hatt einer vielleicht ne Idee, wo mein Fehler liegt?



  • Hallo

    ich hab zwar nicht wirklich verstanden was du vorhast und wofür das gut sein soll, aber in deinem Code läßt du auf einen uninitialisierten Speicher schreiben, nämlich mit GetWindowText. Du müßtest erstmal für test den Speicher reservieren, den die Funktion dann benutzen darf.

    Aber warum nicht einfach so :

    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
      SetForegroundWindow(Handle); // "Form1->" brauchst du in methoden von TForm1 selber nicht!
    BringWindowToTop(Handle);
    SetActiveWindow(Handle);
    Application->MessageBox(Caption.c_str(),"Alert",MB_OK);
    }
    

    bis bald
    akari



  • Hi,
    hab es getestet, gleiche wie zuvor, in der Taskleiste leuchtet es, in Vordergrund wird es nicht geholt.

    Ich will einfach, das komplette Fenster in Vordergrund holen.

    Und das in diversen Abständen.

    Aber klappt ja nicht mal, das Fenster noch vorne zu holen.


Anmelden zum Antworten