Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Mit TWebBrowser andere IE-Version kapseln (https://www.delphipraxis.net/175629-mit-twebbrowser-andere-ie-version-kapseln.html)

Der schöne Günther 4. Jul 2013 16:29

Mit TWebBrowser andere IE-Version kapseln
 
So viele Fragen zum TWebBrowser und ich stelle noch eine :oops:

Ich weiß, dass der TWebBrowser auf Windows den Internet Explorer kapselt. Ist bsp. der IE9 installiert, surft man in seiner Delphi-Anwendung effektiv mit dem IE9. Ist der IE10 installiert, kommt auch der IE10 zum Einsatz. Das weiß ich.

Zusätzlich weiß ich von Dingen wie dem IE-Kompatiblitätsmodus, aber darum soll es hier nicht gehen.

Ich möchte keinen Kompatiblitätsmodus, ich möchte muss mit einem echten Internet Explorer 6 surfen. Klingt komisch, ist aber so.

Ich möchte es genauso tun, wie das Programm IETester: Es kann Seiten mit IE5.5, IE6, IE7, ...-Logik darstellen. Es bringt auch gleich einen Haufen DLLs für die jeweilige IE-Version mit:

Zitat:

Here is the list of engines/features/dlls hooked by IETester when using a custom engine :
  • Trident engine (mshtml.dll / shdocvw.dll / ieframe.dll)
  • Javascript engine (jscript.dll)
  • Http functions (urlmon.dll / wininet.dll)
  • PNG transparency functions (dxtmsft.dll / dxtrans.dll / imgutil.dll / pngfilt.dll)

http://my-debugbar.com/wiki/IETester/HowDoesItWork


Ich möchte das auch können. Nur wie? Die entsprechenden DLLs in das gleiche Verzeichnis wie meine Anwendung zu werfen führte leider nicht zum Erfolg, die Delphi-Anwendung zeigt sich davon relativ unbeeindruckt.

jaenicke 4. Jul 2013 16:39

AW: Mit TWebBrowser andere IE-Version kapseln
 
Du kannst im System einstellen welche Version der TWebBrowser nutzen soll. Ich vermute, dass das Tool u.a. dieses Auslesen der Einstellungen hookt und so mehrere Versionen on the fly nutzen kann...

Der schöne Günther 4. Jul 2013 17:04

AW: Mit TWebBrowser andere IE-Version kapseln
 
Zitat:

Zitat von jaenicke (Beitrag 1220757)
Du kannst im System einstellen welche Version der TWebBrowser nutzen soll.

Wirklich? Ich hätte absolut keine Ahnung, wo ich ansetzen soll: Wie gesagt, ich meine nicht den Kompatiblitätsmodus. Ich brauche wirklich die beinharten Fehler, die der gute alte IE6 noch gemacht hat, die gibt auch ein Kompatiblitätsmodus nicht mehr her...

Dawn87 4. Jul 2013 17:20

AW: Mit TWebBrowser andere IE-Version kapseln
 
Schau Dir mal diesen Thread an:

http://www.delphipraxis.net/174248-g...ebbrowser.html

Hilft Dir das weiter?

Der schöne Günther 4. Jul 2013 17:39

AW: Mit TWebBrowser andere IE-Version kapseln
 
Nein :-), denn das dreht sich um die Emulation, im IE-Jargon immer "Kompatiblitätsmodus" genannt. Ich möchte aber den real deal, bringe auch gleich meine DLLs mit, weiß jetzt nur nicht, wo ich sie reinstecken soll.

nahpets 4. Jul 2013 18:06

AW: Mit TWebBrowser andere IE-Version kapseln
 
Muss es der TWebBrowser sein oder reicht das ActiveX-Teil DHTMLEdit aus?

Dann könnte es über den Import der entsprechenden Typelib funktionieren, muss halt dann einen eigenen Namen bekommen. Bin mir aber nicht sicher, ob ich hier nicht eventuell einer Illusion aufsitze ;-)

Der schöne Günther 5. Jul 2013 09:41

AW: Mit TWebBrowser andere IE-Version kapseln
 
Meine Anforderung ist nur, dass der Benutzer mit IE6-Logik ein paar HTML-Formulare angezeigt bekommt, ausfüllen und abschicken kann.

Scheitern könnte es bsp jetzt nur daran, dass ich praktisch nichts über ActiveX weiß. Wahrscheinlich fahre ich besser, im Hintergrund das IETester-Programm zu starten und sein Fenster zu kidnappen :-D

Caps 5. Nov 2013 16:13

AW: Mit TWebBrowser andere IE-Version kapseln
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1220761)
Zitat:

Zitat von jaenicke (Beitrag 1220757)
Du kannst im System einstellen welche Version der TWebBrowser nutzen soll.

Wirklich? Ich hätte absolut keine Ahnung, wo ich ansetzen soll: Wie gesagt, ich meine nicht den Kompatiblitätsmodus. Ich brauche wirklich die beinharten Fehler, die der gute alte IE6 noch gemacht hat, die gibt auch ein Kompatiblitätsmodus nicht mehr her...


Sorry für's Aufwärmen, aber mich würde brennend interessieren, wo ich im System einstellen kann, welche IE-Version der TWebBrowser benutzt.
In meinem Falle ist es ausreichend, wenn ich es einmal einstellen kann; ich muss weder wechseln noch mehrere Versionen gleichzeitig benutzen können.

Beste Grüße und gespannt wie ein gespanntes Drahtseil
Caps

Der schöne Günther 5. Nov 2013 19:01

AW: Mit TWebBrowser andere IE-Version kapseln
 
Soweit ich sehe, überhaupt nicht.

Ich habe nie eine Lösung dafür gefunden.

hathor 5. Nov 2013 19:59

AW: Mit TWebBrowser andere IE-Version kapseln
 
Schau mal hier:
http://www.entwickler-ecke.de/viewto...=680989#680989

Der schöne Günther 5. Nov 2013 21:15

AW: Mit TWebBrowser andere IE-Version kapseln
 
Danke für den Link. Aber wie gesagt, das behandelt die "Emulation", also genau das, was ein normaler Internet Explorer-Benutzer auch mit seinem Kompatiblitätsmodus steuern kann.

Der Kompatiblitätsmodus versucht vielleicht das Rendern so ähnlich wie die Zielversion zu gestalten, aber man hat keinen echten Browser dieser Version. In meinem Fall habe ich zwingend einen waschechten IE6 gebraucht da dieser abgesendete Formulardaten falsch verarbeitet hat.

himitsu 5. Nov 2013 21:41

AW: Mit TWebBrowser andere IE-Version kapseln
 
Wenn du es ganz "echt" brauchst, dann nennst sich das VM.

Der schöne Günther 5. Nov 2013 22:17

AW: Mit TWebBrowser andere IE-Version kapseln
 
Das genannte "IE Tester"-Tool hat die Aufgabe eigentlich mit Bravour erledigt ;-)

Einem nicht zwangsweise PC-versierten Benutzer zu erklären "Ja, statt dem Internet Explorer startest du einfach das Programm das ich dir in der Mail geschickt habe und machst alles wie sonst auch" war denke ich wirklich besser als aus der Ferne etwas mit einer VM anzufangen. Und das gute Tool ist sicher auch speicherplatzfreundlicher als ein halbes Dutzend VMs ;-)

Caps 6. Nov 2013 09:29

AW: Mit TWebBrowser andere IE-Version kapseln
 
Hm, ja, Emulation... danke für die Antworten jedenfalls.

Wenn ich doch (wieder) Emulation machen muss...
Diesmal geht es bei uns um den IE11, der mit Windows 8.1 ausgeliefert wird. Bei Aufruf einer externen Seite gibt's einen Skriptfehler, falls die Seite mit TWebBrowser angezeigt wird.
Im "echten" IE11 gibt's hingegen kein Problem. Jetzt dachte ich zunächst auch an Browser-Emulation, ich finde aber den magischen Zauber-Zahlencode für den IE11 nirgends, auch nicht auf der MSDN-Seite - kennt den zufällig schon jemand?

Ich hoffe das ist nicht schon Off-Topic... :zwinker:

lg Caps

hathor 6. Nov 2013 10:38

AW: Mit TWebBrowser andere IE-Version kapseln
 
Den IE11 emulieren?
Wie soll das gehen?
Es gibt viele Änderungen:
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
http://msdn.microsoft.com/en-us/libr...=vs.85%29.ASPX

Internet Explorer 11 can only be installed on Windows 7 Service Pack 1 or higher

Caps 6. Nov 2013 11:01

AW: Mit TWebBrowser andere IE-Version kapseln
 
Sorry, ich habe mich ungünstig ausgedrückt.

Es gibt für die IEs mehrere Betriebsmodi, so in etwa
- Standardmodus
- Kompatibilitätsmodus
- erzwungener Modus

Das gibt es seit dem IE8, glaube ich, für jeden IE.
Ich glaube aufgrund der Erfahrung mit dem IE10 annehmen zu dürfen, dass der TWebBrowser automatisch im Kompatibilitätsmodus startet. Dies konnte man für den IE10 mit dem Emulationswert 10001 verhindern, der TWebBrowser startete im "erzwungenen" IE10-Modus.

Ich möchte gleiches nun für den IE11 tun, nämlich den TWebBrowser im erzwungenen IE11-Modus und NICHT im Kompatibilitätsmodus starten.
Ich erwarte, dass also demnächst irgendwo bekannt wird, welchen Zahlenwert man dem Schlüssel in der Registry zuordnen muss, um das zu erreichen. Nur habe ich diesbezüglich noch nichts finden können, leider.

lg Caps

RigbyRig 26. Jun 2014 08:42

AW: Mit TWebBrowser andere IE-Version kapseln
 
@caps

da deine frage nach dem registry-key-eintrag für den IE 11 schon ein wenig zurück liegt, weiß ich nicht genau ob
die antwort hier und dir noch hilft, aber für alle anderen, armen suchenden hier folgender hinweis:

11001 (dezimal) (in hex dann 0x2AF9) Internet Explorer 11. Webpages are displayed in IE11 edge mode, regardless of the !DOCTYPE directive.
11000 (dezimal) (in hex dann0x2AF8) IE11. Webpages containing standards-based !DOCTYPE directives are displayed in IE11 edge mode. Default value for IE11.

einzutragen unter

HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
SOFTWARE
Microsoft
Internet Explorer
Main
FeatureControl
FEATURE_BROWSER_EMULATION

Unter dem Schlüssel FEATURE_BROWSER_EMULATION (falls nicht vorhanden, anlegen) dann als DWORD

myApplication.exe = 11001 (falls dezimal gewählt wird) oder
myApplication.exe = 2AF9 (falls hex gewählt wird)

eintragen.

beste grüße
stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz