![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#11 |
Hero
![]() Registriert seit: 26.07.2001
Ort: Wien
Beiträge: 811
|
![]() ja, habe leider auch nur kostenpflichtige tools/libs gefunden...
nichts desto trotz habe ich jetzt über umwege das gewünschte ergebnis erhalten (schwere geburt), indem ich "einfach" meinen ganzen webbrowser-code in eine DLL verpackt habe... warum es jetzt geht?! egal ![]() jedenfalls vielen dank an alle ![]()
____________________________________
nobody is perfect |
![]() |
![]() |
![]() |
#12 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Verstehe ich das richtig:
Du packst die System.Windows.Forms.WebBrowser und den ganzen sonstigen Code in eine "unmanaged" DLL rufst von dieser DLL die benötigten Methoden auf und dann funkt das ganze? Das heißt soviel wie du umgehst die nicht dokumentierten "Sicherheitsfeatures" vom Webbrowser Control indem du es als DLL verwendest? |
![]() |
![]() |
![]() |
#13 |
Hero
![]() Registriert seit: 26.07.2001
Ort: Wien
Beiträge: 811
|
![]() hmmm, ja. ("unmanaged DLL"
![]() ich habe zwar gaaaaanz seltsame phänomene mit visual studio, aber ich habe es heute noch einmal explizit ausprobiert - es hat nur über die DLL funktionert. wenn ich morgen zeit finde, werde ich es noch einmal probieren - bin nämlich heute draufgekommen, dass ich an vielen fehlern gar nicht schuld bin!! VS schließen und wieder öffnen und der fehler ist weg!!?! ![]()
____________________________________
nobody is perfect |
![]() |
![]() |
![]() |
#14 |
Hero
![]() Registriert seit: 04.09.2001
Beiträge: 894
|
![]() hallo,
warum "unmanaged" dll? Auch eine dll kann managed code enthalten - das tut sie aber nicht, wenn man das webbrowser control verwendet, dieses ist nämlich unmanaged. .net 2.0 bietet zwar ein webbrowser control an (im gegensatz zu 1.x) - dieses ist aber nur ein wrapper über das "normale" unmanaged webbrwoser control. Ein richtiges managed Webbrowser Control gibt es meines Wissens nach leider nicht - hier wäre MS sehr gefragt. Kommt mir komisch vor, dass es in einer dll ausgelagert funktionieren sollte, im Code direkt verwendet aber nicht. Hast du dabei das Control eh nicht vom Designer auf die Form gezogen? Versuch einfach mal es im Code zu instanziieren - das sollte dann das selbe sein, wie wenn du eine anderes Assembly (=Dll) einbindest. Aja - so komisches Verhalten von Visual Studio hab ich auch ab und zu + ein Restart hilft dann. Ist auf meinem Firmen PC so, dass - wenn man 2 Visual Studio und Sql Server Management Studio geöffnet hat, "spinnt" Visual Studio - Menüs werden nicht mehr angezeigt, Kontextmenü geht nicht und anderes... Weiß aber nicht woram es liegt (ev. am PC?) - zu Hause hab ich damit keine Probleme. fg hannes |
![]() |
![]() |
![]() |
#15 | |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Zitat:
![]() |
|
![]() |
![]() |
![]() |
#16 |
Hero
![]() Registriert seit: 26.07.2001
Ort: Wien
Beiträge: 811
|
![]() jetzt bin ich endgültig am verzweifeln...
doch nicht mehr ![]() denke jetzt endgültig klarheit gefunden zu haben!! tut mir echt leid, dass ich euch da in die irre geführt habe (aber ihr hättet es ja auch selbst ausprobieren können ![]() aaaalso: es funktioniert so und so!!!! (dll oder direkt gecodet) also warum nicht gleich so?[list=1][*]besagte visual studio fehler (wenn man dann andere wege ausprobiert und diese funktionieren, schließt man natürlich gleich auf "der vorherige weg muss falsch gewesen sein, da fehler") [*]der "fehler" lag beim warten auf das abschließen des ladevorganges der website! da unter ASP.NET "Application.DoEvents()" nicht funktioniert, habe ich es einfach weggelassen, was dazu geführt hat, dass die website nie geladen wurde... tja, was soll ich sagen ![]() Code:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default2.aspx.vb" Inherits="Default2" aspcompat="true" %><% Dim webb As Windows.Forms.WebBrowser webb = New Windows.Forms.WebBrowser webb.Navigate("http://www.wcm.at") While Not webb.ReadyState = Windows.Forms.WebBrowserReadyState.Complete System.Windows.Forms.Application.DoEvents() Sleep(200) End While Response.Write(webb.DocumentText) %> Code:
Partial Class Default2 Inherits System.Web.UI.Page Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Integer) End Class p.s.: dass es mit files geklappt hat, liegt wahrscheinlich an der sehr kurzen ladezeit p.p.s.: ich hoffe (für euch und für mich), dass es das jetzt war und ich nicht wieder auf andere sachen draufkomme ![]() ![]()
____________________________________
nobody is perfect |
![]() |
![]() |
![]() |
#17 |
Hero
![]() Registriert seit: 04.09.2001
Beiträge: 894
|
![]() hi,
paar dinge fallen mir an dem code auf: 1. System.Windows.Forms.Application.DoEvents() ...hat in einer web Applikation nichts zu suchen. Was soll es bewirken? Bei Winforms bewirkt es, dass die Meldungsschleife die nächsten Meldungen abarbeitet - bei Web Applikationen gibt es keine solche Schleife. (Jedes Windows Prog. hat eine Meldungsschleife - bei C++ programieren unter Win. war das klar sichtbar, durch MFC wurde es etwas verborgen und bei .net ist das nun genz vom Programmierer versteckt - der internen Mechanismus funktioniert aber nachwievor so) das "While Not webb.ReadyState = Windows.Forms.WebBrowserReadyState.Complete" ist korrekt. 2. Es gibt ein "System.Threading.Thread.Sleep(...), du brauchst also keine funktion aus der kernel32 dll einbinden. fg hannes |
![]() |
![]() |
![]() |
#18 |
Hero
![]() Registriert seit: 26.07.2001
Ort: Wien
Beiträge: 811
|
![]() hmmmm[list=1][*]wenn ich diese zeile auskommentiere, geht es nicht - gibt es einen anderen weg??[*]ja stimmt, sorry - habe zu viele versionen, da habe ich die ohne Threading.Thread.Sleep kopiert =)[/list=1]
____________________________________
nobody is perfect |
![]() |
![]() |
![]() |
#19 | |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Zitat:
Das war ja von mir schon von Anfang an die Frage, was das Webbrowser Control in einer ASP.NET Anwendung zu suchen hat. Aber nachdem er is für die interne Verarbeitung braucht - why not. ![]() |
|
![]() |
![]() |
![]() |
#20 |
Hero
![]() Registriert seit: 04.09.2001
Beiträge: 894
|
![]() stimmt!
das war blödsinn meinerseits. Du verwendest ja ein Control aus dem Windows.Forms Namespace und dieses hat - wie alle WinForms Controls - natürlich schon eine Meldungsschleife. sorry + fg hannes |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|