AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TWebbrowser im Thread benutzen

Ein Thema von youuu · begonnen am 30. Nov 2013 · letzter Beitrag vom 1. Dez 2013
Antwort Antwort
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#1

TWebbrowser im Thread benutzen

  Alt 30. Nov 2013, 20:46
Hi ich habe ich riesen Problem.
Ich habe auf der Form 8 Browser.

Nun starte ich verschiedene Threads, jedem wird ein Browser zugewiese.
Dieser soll nun eine Webadresse anwählen. (Klappt alles)

Nun aber das Problem, wenn ich von dieser Adresse mit den Sourcecode geben lassen möchte erhalte ich einen Fehler.
Und zwar "Access violation at address 632D533D in module 'MSHTML.dll' Read of address 00000008"
Steven
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: TWebbrowser im Thread benutzen

  Alt 30. Nov 2013, 23:37
Was hast du überhaupt vor dass du mehrere Threads in Verbindung mit TWebBrowser verwendest?
TWebBrowser ist ein visuelles Control und da die VCL nicht threadsicher ist kannst du dir somit jede Menge Probleme einhandeln.

Frage: benötigen deine Webabrufe die Unterstützung von JavaScript?
Falls nicht könntest du mit dem ActiveX-Objekt IXMLHTTPRequest oder Indy besser zurechtkommen.
fork me on Github

Geändert von sx2008 (30. Nov 2013 um 23:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer
Online

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: TWebbrowser im Thread benutzen

  Alt 30. Nov 2013, 23:59
Was hast du überhaupt vor dass du mehrere Threads in Verbindung mit TWebBrowser verwendest?
TWebBrowser ist ein visuelles Control und da die VCL nicht threadsicher ist kannst du dir somit jede Menge Probleme einhandeln.
Primär liegt die fehlende Thread-Sicherheit daran das alle GDI-Objekte Thread-Affin sind und nur im erzeugenden Thread verwendet werden dürfen. Und die Absturzstelle (MSHTML.dll) deutet darauf hin das hier (ausnahmsweise) die VCL unschuldig ist.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#4

AW: TWebbrowser im Thread benutzen

  Alt 1. Dez 2013, 10:56
Den Webbrowser Zugriff sicher ich immer mit einer TCriticalSection ab.
Ich kann zwar auch Indy verwenden, aber ich möchte die Zugriffe gerne visual darstellen, daher der Webbrowser.

Ich wunder mich halt wieso die MSHTML.dll rummeckert und wie ich das beheben kann.
Steven
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer
Online

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: TWebbrowser im Thread benutzen

  Alt 1. Dez 2013, 11:07
Den Webbrowser Zugriff sicher ich immer mit einer TCriticalSection ab.
Wird hier nix nützen.

Ich kann zwar auch Indy verwenden, aber ich möchte die Zugriffe gerne visual darstellen, daher der Webbrowser.
Wie gesagt. Wird nicht gehen da das von der Win-API und der VCL nicht vorgesehen ist.
Da musst du schon mehr Aufwand investieren um es ähnlich wie moderne Browser machen. Diese starten für jedes Fenster einen eigenen Prozess und blenden diesen dann auf das Fenster des Hauptprozesses ein.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#6

AW: TWebbrowser im Thread benutzen

  Alt 1. Dez 2013, 11:10
Hmm wie soll das funktionieren?
Gibt es dafür ein Tutorial?
Steven
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer
Online

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: TWebbrowser im Thread benutzen

  Alt 1. Dez 2013, 11:15
Hmm wie soll das funktionieren?
Google bzw. such hier im Forum nach "fremde anwendung fenster"

Gibt es dafür ein Tutorial?
Glaube ich nicht. Die Anforderung ist zu speziell.



Aber wieso überhaupt Threads.
Einfach nacheinander alle 8 TWebBrowser mit navigate ansteuern. Diese werden schon versuchen möglichst parallel die Seiten zu laden.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#8

AW: TWebbrowser im Thread benutzen

  Alt 1. Dez 2013, 11:21
Weil ich gerade an Threads übe und das direkt damit verbinden wollte, um zu lernen.
Steven
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer
Online

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: TWebbrowser im Thread benutzen

  Alt 1. Dez 2013, 11:28
Weil ich gerade an Threads übe und das direkt damit verbinden wollte, um zu lernen.
Zum lernen ist das zu Kompliziert da hier zu viele andere Faktoren (Thread-Affinität, Netzwerk, OLE/ActiveX) mitspielen.
Nimm was einfacheres
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#10

AW: TWebbrowser im Thread benutzen

  Alt 1. Dez 2013, 11:44
Den Webbrowser Zugriff sicher ich immer mit einer TCriticalSection ab.
Wird hier nix nützen.
Jupp, denn damit kannst du nur deine eigenen Zugriffe absichern, aber wenn du eh nur von je einem Threead zugreifen wolltest, wäre das ja schon abgesichert.

Nur was ist mit den restlichen Zugriffen, welche nciht von dir sind?
z.B. vom Windows, wenn es das Ding neu zeichnet oder auf deine Eingaben reagiert
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz