AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE D10.4.2 TWebBrowser funktioniert in der IDE nicht immer
Thema durchsuchen
Ansicht
Themen-Optionen

D10.4.2 TWebBrowser funktioniert in der IDE nicht immer

Ein Thema von Michael II · begonnen am 4. Mär 2021 · letzter Beitrag vom 10. Mär 2021
Antwort Antwort
Seite 1 von 2  1 2      
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
760 Beiträge
 
Delphi 11 Alexandria
 
#1

D10.4.2 TWebBrowser funktioniert in der IDE nicht immer

  Alt 4. Mär 2021, 00:40
In einer VCL App verwende ich TWebBrowser zum Anzeigen von News. Seit 10.4.2 werden in der IDE beim Laden von Seiten immer wieder Exceptions angezeigt. Ich verwende Microsoft Windows [Version 10.0.19043.844]

Ich kann einen Teil der Probleme mit einem einfachen Beispiel nachbauen: Formular mit einer TWebBrowser Komponente und einem Button.

Delphi-Quellcode:
procedure TForm56.Button1Click(Sender: TObject);
begin
  webbrowser1.Navigate('http://www.google.ch' );
end;
Wenn ich den Button klicke und damit
webbrowser1.Navigate('http://www.google.ch' );
aufrufe, dann werden immer wieder in

Delphi-Quellcode:
function TApplication.ProcessMessage(var Msg: TMsg): Boolean;
...
begin
...
    if MsgExists then
    begin
...
          not Handled and not IsMDIMsg(Msg) and
          not IsKeyMsg(Msg) and not IsDlgMsg(Msg) then
        begin
          TranslateMessage(Msg);
          if Unicode then
            DispatchMessageW(Msg) <<<====
bei gewissen Msg Werten ((m=32770 w=0 l=0), (m=275 w=8200 l=0)) Exceptions ("Exception der Klasse $C0000005 mit der Meldung 'access violation at 0x69763714" -- Zugriffsverletzung bei Adresse 69763714 in Modul 'MSHTML.dll (11.00.19041.844 (WinBuild.160101.0800) Timestamp 6.12.13)'. Lesen von Adresse xxx) ausgelöst. Wenn ich Anhalten klicke, dann zeigt die IDE auf <<<==== (siehe Code oben).
Wenn das Programm ausserhalb der IDE läuft, dann tritt kein Problem auf.


Wenn ich eine lokale Datei lade
webbrowser1.Navigate('C:\Users\micha\Desktop\bug.t xt');
dann meldet die IDE Exceptions in

Delphi-Quellcode:
procedure TOleControl.DefaultHandler(var Message);
begin
...
          Result := CallWindowProc(DefWndProc, Handle, Msg, WParam, LParam); <<== m=514 p=0 L'

Liegt dies an der aktuellen Beta von Windows oder an der Delphi IDE?
Michael Gasser

Geändert von Michael II ( 4. Mär 2021 um 01:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: D10.4.2 TWebBrowser funktioniert in der IDE nicht immer

  Alt 4. Mär 2021, 06:51
Die Exceptions werden nur in der IDE angezeigt?
Es geht in der gedebugten Anwendung kein Fehlerdialog auf?

Wenn ja, dann "ignoriere" es doch einfach.
Diese Exception wurde dann ja wohl irgendwo mit einem Try-Except (o.Ä) abgefangen.



Und ja, beim Debuggen ist es nervig, aber das ist wie, wenn ein Archloch im Code sowas versteckt
Delphi-Quellcode:
try
  i := StrToInt(S);
except
  i := 0;
end;
, anstatt i := StrToIntDef(S, 0); .
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
760 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: D10.4.2 TWebBrowser funktioniert in der IDE nicht immer

  Alt 4. Mär 2021, 11:59
Die Exceptions werden nur in der IDE angezeigt?
Es geht in der gedebugten Anwendung kein Fehlerdialog auf?

Wenn ja, dann "ignoriere" es doch einfach.
Diese Exception wurde dann ja wohl irgendwo mit einem Try-Except (o.Ä) abgefangen.
[/DELPHI].
Wenn ich die App aus dem Windows Explorer starte wird nix angezeigt.

Wenn ich die App exe in Delphi (Start > Prozess laden...) lade, dann wird die Exception angezeigt.

Wie du schreibst: Ich verwende natürlich überall try finally/except, aber nicht in einem solchen Minimalprojekt.

Hier würde ein

Delphi-Quellcode:
procedure TForm56.Button1Click(Sender: TObject);
begin
 try
  webbrowser1.Navigate('http://www.google.ch' );
 except
  ...
 end;
end;
nichts nützen, da Navigate das Laden der Webseite zwar auslöst, aber sofort zurückkehrt und die Exception dann erst nach dem end; der procedure
TForm56.Button1Click in der MSHTML.dll auftritt.

In deinem Beispiel (strtoint) könnte ich nach dem Auftreten der Exception weiter debuggen. Hier geht das nicht, da nach der Anzeige der Exception nach Klick auf "Fortsetzen" die Meldung

Benachrichtigung über Debugger-Problem
---------------------------
In Projekt C:\..Project19.exe trat ein Problem mit folgender Meldung auf:
'access violation at 0x696a3714: read of address 0x0c259000'.
Prozess angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK

angezeigt wird und nach OK Klick eine weitere Exception der Klasse $C0000005 mit der Meldung 'access violation at 0x00000000: read of address 0x00000000' angezeigt wird. Und nix geht mehr.

Ich habe mein System mit MSERT gecheckt. Die DLLs scheinen alle OK zu sein.

Du schreibst "Exception einfach ignorieren". Das möchte ich nicht - eher baue ich den WebBrowser aus. (Es gibt ja bei solchen Fehlern Windows Versionen, welche solche Exceptions ernster nehmen als andere.)

Falls jemand das Problem und eine Lösung kennt, dann bin ich natürlich froh um Meldung.

Das mit Delphi mitgelieferte Beispielprogramm läuft natürlich genau gleich in diese Exception.

[Ich muss die App wohl oder übel mal auf einem anderen System remote debuggen.]
Michael Gasser
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: D10.4.2 TWebBrowser funktioniert in der IDE nicht immer

  Alt 4. Mär 2021, 12:39
Zitat von Michael II:
Beta von Windows
Wichtige Information, ist aber leicht zu überlesen.

Hast du das Problem auch bei der letzten normalen Release-Version von Windows 10 20H2?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: D10.4.2 TWebBrowser funktioniert in der IDE nicht immer

  Alt 4. Mär 2021, 15:20
Der Webbrowser lädt die Seiten asynchron, also Navigate startet nur und kehrt zurück.
Daher gibt es auch die vielen Events an der Komponente, für "bin fertig" und Dergleichen.

Probiere auch mal das Property Silent.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
760 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Windows Beta + D10.4.2 TWebBrowser funktioniert in der IDE nicht immer

  Alt 4. Mär 2021, 15:23
Zitat von Michael II:
Beta von Windows
Wichtige Information, ist aber leicht zu überlesen.

Hast du das Problem auch bei der letzten normalen Release-Version von Windows 10 20H2?
Ja hast Recht, die Info Windows Beta gehört unbedingt in den Titel... hab's angepasst.

[ Die Exceptions können natürlich immer auch durch irgend ein "lokales" Problem ausgelöst werden. Da Windows aber relativ neu aufgesetzt ist und sfc und MSERT OK melden... Mal sehen. Heute habe ich noch auf einem [Version 10.0.17763.1757] Windows Server via PAServer getestet. Dort ist alles OK]

Auf das navigate(..) Problem aufmerksam geworden bin ich, weil navigate2(..) neu in meiner App immer ein Speicherleck auslöst (Code seit Jahren gleich und nie Probleme), wenn ich einen WebBrowser zur Laufzeit erzeuge und WebBrowser1.SelectedEngine := EdgeIfAvailable; setze. ]


Tipp von himitsu: Silent spielt keine Rolle. Exception bleibt.
Michael Gasser

Geändert von Michael II ( 4. Mär 2021 um 15:59 Uhr)
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
760 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: TWebBrowser funktioniert in der IDE nicht immer

  Alt 4. Mär 2021, 19:14
Ich habe eine alte Kiste mit XE3 gefunden (im Umzugkarton seit über 1 Jahr...), dort die WebBrowser App erstellt und auf mein Win10 Microsoft Windows [Version 10.0.19043.844] kopiert.

Gleiches Bild: Die App funktioniert aus dem Windows Explorer gestartet. Wenn ich microsofts "App Verifier" laufen lasse, wird die App in vielen Fällen geschlossen und der Fehler wird protokolliert.

Es liegt also definitiv nicht speziell an D14.2.

Sollte ich noch was finden (ob's generell an Windows oder speziell an meiner Konfiguration liegt), dann werde ich's hier posten.
Michael Gasser
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: D10.4.2 TWebBrowser funktioniert in der IDE nicht immer

  Alt 4. Mär 2021, 19:58
Die Windows-Version ist ja jetzt nicht so exotisch, das ist doch die aktuelle Build aus dem Beta-Channel, läuft z.B. auch bei mir.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: D10.4.2 TWebBrowser funktioniert in der IDE nicht immer

  Alt 4. Mär 2021, 20:34
TWebBrowser kann man in verschiedenen Konfigurationen nutzen.
Seit Edge kann man auch wählen zwischen IE, NurEdge und EdgeWennnichtdadannIE. (auktuell steht der Default noch auf IE)

Und über die Registry konnte man, wenn ich mich nicht irre, auch festlegen welche IE-Version genommen werden soll. (kannst dazu was im Forum finden)

Hier im Forum suchenWindows Sandbox
Damit hast erstmal ein sauberes Windows, zum Testen (ab Professional)
https://winaero.com/enable-windows-1...wershell-dism/ (Menü oder Befehle zum Installieren)
https://docs.microsoft.com/de-de/win...ndbox-overview (Werbevideo)
https://www.delphipraxis.net/207151-...ml#post1484308 (noch nicht fertig, aber wäre genau was für dich gewesen )

Und da du mit IE/Edge Probleme hast, gäbe es auch noch
https://developer.microsoft.com/en-u...dge/tools/vms/


PS: https://www.delphipraxis.net/204466-...ebrowsers.html
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 4. Mär 2021 um 20:54 Uhr)
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
760 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: D10.4.2 TWebBrowser funktioniert in der IDE nicht immer

  Alt 5. Mär 2021, 10:18
Herzlichen Dank für alle Tipps. Edge lief und läuft absolut problemlos, sowohl die neue Edge-Komponente wie auch TWebBrowser, wenn Edge selektiert.

Im Minimalprojekt nutzt TWebBrowser natürlich die Standardeinstellungen, also IE11.

Windows habe ich via RestoreHealth und sfc gecheckt. Zeigt nix an. (Was natürlich immer noch nicht bedeutet, dass alles OK.)

Peinlich wegen Win-Sandbox: Ich verwende noch Win Home... (Ich verspreche mir Besserung.)

Ich glaube, es liegt an ieframe.dll vom 18.2.21. (11....844).

Bei eingeschaltetem AppVerifier aus dem Win SDK tritt der Fehler (access violation at 0x69f43714) beim Debuggen (zum Beispiel) via Delphi immer (also reproduzierbar) auf.

Beim Abarbeiten (DispatchMessageW(Msg)) der ersten msg.Message=1125 in VCL.Forms function TApplication.ProcessMessage(var Msg: TMsg): Boolean;

direkt nach dem Rücksprung aus (pchKey=NIL, dw=0)
Delphi-Quellcode:
SHDocVW.pas: function TWebBrowser.GetOptionKeyPath(var pchKey: POLESTR; const dw: DWORD): HRESULT;
begin
  Result := E_FAIL;
end;
Dies nachdem zuvor
Delphi-Quellcode:
VCL.OleCtrls.TOleControl.Invoke(DispID: Integer; const IID: TGUID;
  LocaleID: Integer; Flags: Word; var Params;
  VarResult, ExcepInfo, ArgErr: Pointer): HResult;
DispID = -5512 => Result := DISP_E_MEMBERNOTFOUND;



- App Verifier aus dem Win SDK starten
- sich vergewissern, dass ieframe.dll vom 18.2.21, .844 installiert ist
- in SHDocVW einen Breakpoint in TWebBrowser.GetOptionKeyPath setzen
- das Minimalprojekt laufen lassen
- weitersteppen nach TWebBrowser.GetOptionKeyPath
=> access violation at 0x69f43714
Michael Gasser
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:54 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