IsBusy bei Webbrowser



  • Diese Funktion rufe ich alle 5 millisekunden auf...

    void WBIsBusy()
    {
        IUnknown* pUnk = NULL;
        AtlAxGetControl(hBrowserWnd, &pUnk);
        CComDispatchDriver pDisp(pUnk);
    
        // Parameter
        VARIANTARG varIsBusy;
        VariantInit(&varIsBusy);
        varIsBusy.vt    = VT_BOOL;
    
        // Adresse übergeben
        pDisp.Invoke1(OLESTR("IsBusy"), &varIsBusy);
    
        if(varIsBusy.boolVal==VARIANT_FALSE)
            StatusSetText(hMainWnd, "fertig geladen");
    
        // und wieder freigeben
        VariantClear(&varIsBusy);   
    }
    

    aber auch nach dem Laden einer Seite wirde nicht "fertig geladen" angezeigt

    vielleicht kann mir ja jemand (-KING-) helfen.

    danke!
    cu para
    😃



    1. Es gibt im WebBrowser-Control keine Eigenschaft "IsBusy". Vermutlich meinst Du "Busy".

    2. Invoke ruft Object-Methoden auf. "Busy" ist aber keine Methode, sondern eine Eigenschaft. Verwende also nicht Invoke, sondern GetPropertyByName.

    disp.GetPropertyByName(OLESTR("Busy"), &varIsBusy);
    


  • thx es funzt!

    Ich werde dich jetzt mal wieder fragen wie ich es machen kann, dass ich informiert werde, dass auf einen Banner geklickt wurde und sich ein neues Fenster öffnet, also praktisch will ich das "window.open(...)" in HTML abfangen, da ich nicht will, dass der Internet Explorer gestartet wird, wenn ich aus meinem Browser aus einen Link anklicke.

    Ich weiss es geht irgentwie mit Events, aber ich komme absolut nicht weiter...

    danke!
    cu para
    😃



  • 😞 😞 😞


Anmelden zum Antworten