WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   VB ASP.NET Windows.Forms.WebBrowser funktioniert nicht richtig? (http://www.wcm.at/forum/showthread.php?t=205187)

void 13.12.2006 16:36

missbrauch
 
na ja, bin ja gerne für andere lösungen offen, welche dann "passender" sind...

wie gesagt, bin für vorschläge gerne offen!! bis jetzt haut das ganz toll hin, da die website auch gerendert zur verfügung steht :D

void 02.01.2007 17:04

warum funktioniert .DrawToBitmap() nicht bei allen seiten??
 
hallo nochmal!

ich habe jetzt noch ein problem mit dem WebBrowser objekt: manche seiten lassen sich mithilfe der funktion "DrawToBitmap" nicht capturen??? warum nicht?
Code:

Public Class Form1

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        WebBrowser1.ScriptErrorsSuppressed = True
        WebBrowser1.Navigate("http://google.at")

        While Not WebBrowser1.ReadyState = WebBrowserReadyState.Complete
            Windows.Forms.Application.DoEvents()
            Threading.Thread.Sleep(100)
        End While

        Dim docimage As Bitmap = New Bitmap(WebBrowser1.Width, WebBrowser1.Height)
        WebBrowser1.DrawToBitmap(docimage, New Rectangle(0, 0, WebBrowser1.Width, WebBrowser1.Height))
        docimage.Save("c:\google.at.jpg", Drawing.Imaging.ImageFormat.Jpeg)
    End Sub
End Class

wenn ich anstatt google.at z.b. orf.at eingebe funktioniert alles wunderbar...

an was kann das liegen?

danke! :aio:

p.s.: für obrigen code: einfach form mit Webbrowser objekt namens "WebBrowser1" ;)

Biri 02.01.2007 19:30

hi,

anscheinend funktioniert diese methode nicht immer (DrawToBitmap) - versuch mal folgendes: http://www.developerfusion.co.uk/show/4712/

fg
hannes

void 03.01.2007 14:28

hallo!

hast du mein beispiel ausprobiert?

danke für den link, aber bei mir funktioniert dabei leider nur der sichtbare bereich... vielleicht habe ich nicht ganz verstanden, wie man die gesamte webpage capturen kann...

Biri 03.01.2007 15:32

hi,

nein, ich hab dein beispiel nicht ausprobiert.

aber genau das von dir beschriebenen problem wird ja dort (link) auch beschrieben:
Zitat:

The code above copies the rendered image from the WebBrowser to the PictureBox. However, there is a problem. The problem is that the BitBlt operation will only copy the visible client area of the WebBrowser
..und danach wird gezeigt, was man tun muss, um den gesamten inhalt zu capturen. ich geb aber zu, ich habs nicht ausprobiert.

fg
hannes

void 03.01.2007 16:00

ja, habe ich gelesen, aber ändern tut sich bei der ausgabe nichts :D

also gut, man sollte sich halt doch zur offiziellen dokumentation bequemen: http://msdn2.microsoft.com/en-us/lib...wtobitmap.aspx
Zitat:

This method is not supported by this control.
... und http://groups.google.at/group/micros...a707004cf9d064
Zitat:

Es wurde auch schon öfter mal in anderen Foren bemerkt,
dass es es nicht (immer) funktioniert.
dann wird mir (oder meinem nachfolger :p) nichts anderes über bleiben, als das capturen durch eine andere methode durchzuführen...
(obwohl ich das ganze ja eh schon probiert habe :mad:, nur eben leider ohne erfolg)

void 03.01.2007 17:23

des rätsels lösung !!
 
also, jetzt funktionieren alle seiten wieder (natürlich nur jene, welche ich getestet habe...)!

warum?
ich habe javascript in den IE-settings deaktiviert!

und warum das?
alle nicht funktionierenden seiten hatten unter JavaScript den befehl .focus() für ein element verwendet... und aus irgendwelchen gründen, hat .DrawToBitmap() danach nicht mehr funktioniert...

die welt ist eine sammlung seltsamer bzw. unverständlicher phänomene :hallo:

Biri 03.01.2007 19:19

interessant!
ich hab inzwischen interessehalber die lösung mit dem kopieren des bildes über GDI32 implementiert. (wie im link angegeben) - hat aber einige probleme - Wenn Fenster < gewünschtes bild wird ein teil abgeschnitte und komischerweise funktioniert es bei ein paar seiten garnicht (z.b. microsoft.com).

vorschlag: poste deine lösung bei codeproject - anscheinend suchen ja mehrere leute danach und du kannst der comunity so einen guten diesenst erweisen. :cool:

fg
hannes


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag