Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Wie TWebbrowser Requests auf's eigene Programm umleiten? (https://www.delphipraxis.net/186445-wie-twebbrowser-requests-aufs-eigene-programm-umleiten.html)

Mavarik 3. Sep 2015 12:23

Wie TWebbrowser Requests auf's eigene Programm umleiten?
 
Hallo Zusammen!

Ich möchte einen TWebbrowser zur Anzeige verwenden, aber alle "Requests" auf Images, Styles usw. auf mein Programm umlenken und zwar ohne eine lokale Webserver Komponente...

Klar könnte ich ein Href="Localhost:8080" verwenden, aber genau darum geht es... (Abgesehen davon, dass bei einem Indy WebServer immer die Virenscanner verrückt spielen...)

Gibt es eine Möglichkeit die RequestURL auf ein eigenes Interface umzuleiten?

Grüsse

Mavarik :coder:

Sir Rufo 3. Sep 2015 12:36

AW: Wie TWebbrowser Requests auf's eigene Programm umleiten?
 
Etwa so
Delphi-Quellcode:
WebBrowser1.Navigate( 'file:///this/is/local/index.html' );
?

Mavarik 3. Sep 2015 12:55

AW: Wie TWebbrowser Requests auf's eigene Programm umleiten?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1314559)
Etwa so
Delphi-Quellcode:
WebBrowser1.Navigate( 'file:///this/is/local/index.html' );
?

Nein eher

Delphi-Quellcode:
WebBrowser1.Navigate( 'MyProg:///this/is/local/index.html' );
bzw.

Delphi-Quellcode:
<img src="MyProg:Cool.jpg">

uligerhardt 3. Sep 2015 13:01

AW: Wie TWebbrowser Requests auf's eigene Programm umleiten?
 
Zumindest für Ressourcen geht das:
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

Mavarik 3. Sep 2015 13:06

AW: Wie TWebbrowser Requests auf's eigene Programm umleiten?
 
Zitat:

Zitat von uligerhardt (Beitrag 1314565)
Zumindest für Ressourcen geht das:
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

OK...

Wo ist der Unterschied (Was bedeutet "zumindest für Resourcen")? Nur auf eine DLL? Wie muss die "andere" Seite aussehen...

uligerhardt 3. Sep 2015 13:08

AW: Wie TWebbrowser Requests auf's eigene Programm umleiten?
 
Zitat:

Zitat von Mavarik (Beitrag 1314566)
Zitat:

Zitat von uligerhardt (Beitrag 1314565)
Zumindest für Ressourcen geht das:
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

OK...

Wo ist der Unterschied (Was bedeutet "zumindest für Resourcen")? Nur auf eine DLL? Wie muss die "andere" Seite aussehen...

Ich weiß nur, dass es das gibt - hab damit nie gearbeitet.

frankyboy1974 3. Sep 2015 13:16

AW: Wie TWebbrowser Requests auf's eigene Programm umleiten?
 
hallo,

programmierst du jetzt einen Server oder einen Browser

Zitat:

Ich möchte einen TWebbrowser zur Anzeige verwenden, aber alle "Requests" auf Images, Styles usw. auf mein Programm umlenken und zwar ohne eine lokale Webserver Komponente...
Ich werde leider nicht schlau

mfg

uligerhardt 3. Sep 2015 13:35

AW: Wie TWebbrowser Requests auf's eigene Programm umleiten?
 
Vielleicht so?
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
http://stackoverflow.com/questions/3...rotocol-e-g-so

nahpets 3. Sep 2015 13:43

AW: Wie TWebbrowser Requests auf's eigene Programm umleiten?
 
Habe keine Ahnung, ob mein Gedankengang auch nur annähernd zutreffend sein könnt:

Hab' 'nen EBook-Reader von Kindle und die entsprechende Lesesoftware von Amadingsda auf dem PC.

Dabei ist mir aufgefallen, das eine Url der Form
Delphi-Quellcode:
kindle://
diese PC-Software startet.
Es muss also irgendwo eine Konfiguration geben, die das möglich macht.

Wo stehen Konfigurationen, die systemweit gelten. Irgendwo in der Registry. Habe also dort mal gesucht und bin auf folgendes gestoßen:
Delphi-Quellcode:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\kindle]
@="URL:Amazon Kindle"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\kindle\DefaultIcon]
@="C:\\Programme\\Amazon\\Kindle\\Kindle.exe"

[HKEY_CLASSES_ROOT\kindle\shell]
@="open"

[HKEY_CLASSES_ROOT\kindle\shell\open]

[HKEY_CLASSES_ROOT\kindle\shell\open\command]
@="\"C:\\Programme\\Amazon\\Kindle\\Kindle.exe\" \"%1\""
Sucht man in der Registry nach
Delphi-Quellcode:
URL Protocol
, so findet man analoge Einträge für mailto, LDAP...
Wenn ich im Browser in der URL kindle://irgendwas angebe, so wird die entsprechende Software gestartet.

Mavarik 3. Sep 2015 14:18

AW: Wie TWebbrowser Requests auf's eigene Programm umleiten?
 
Ziemlich Cool... Im Prinzip genau das richtige... Aber:

Aber ich möchte ungern die Registry Patchen...

Ich dachte ich könnte über das DOM Model oder über eines der Inferfaces die Reqeust's umleiten...

Sir Rufo 3. Sep 2015 14:25

AW: Wie TWebbrowser Requests auf's eigene Programm umleiten?
 
Ich hoffe allen ist aber auch klar, dass damit diese Anwendung gestartet wird und die Anzeige dann durch diese Anwendung erfolgt und nicht durch den
Delphi-Quellcode:
TWebBrowser
=> Internet Explorer.

Die Ausgangsfrage war aber doch
Zitat:

Zitat von Mavarik (Beitrag 1314556)
Ich möchte einen TWebbrowser zur Anzeige verwenden, ...

oder reicht jetzt das Starten einer externen Anwendung zur Anzeige auch?

Warum dann überhaupt einen
Delphi-Quellcode:
TWebBrowser
dazwischen? :gruebel:

Mavarik 3. Sep 2015 14:34

AW: Wie TWebbrowser Requests auf's eigene Programm umleiten?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1314578)
oder reicht jetzt das Starten einer externen Anwendung zur Anzeige auch?

Emm Nein. BZW... Nur wenn Du aktuelle Instance der Exe genommen wird und nicht jedes mal eine neue... :stupid:


Zitat:

Zitat von Sir Rufo (Beitrag 1314578)
Warum dann überhaupt einen
Delphi-Quellcode:
TWebBrowser
dazwischen? :gruebel:

Weil ich die HTML Documente anzeigen möchte und keinen eigenen Viewer schreiben wollte... Kann ich natürlich machen...
Hab ja heute Nachmittag nix vor...

Sir Rufo 3. Sep 2015 15:13

AW: Wie TWebbrowser Requests auf's eigene Programm umleiten?
 
Mir ist schon klar, dass du HTML-Dokumente anzeigen möchtest, aber der Eintrag eines eigenen Protokolls ist hier nicht zielführend, denn dadurch wird einfach eine Anwendung gestartet, die dieses Protokoll unterstützt.

Das geht dann auch einfach mit ShellExecute ... der WebBrowser wäre nur so ein Sprungbrett dazwischen, was man eben mit dem ShellExecute auch direkt erreichen könnte.

Aber wie gesagt, das ist ja nicht das was du willst!

Delphi-Quellcode:
TWebBrowser
kann auch lokale html Dateien anzeigen. Du willst quasi einen "Link" angeben und dieser "Link" soll dann im WebBrowser angezeigt werden.

Gut, dann musst du diesen "Link" eben durch ein - wie auch immer geartetes - Konstrukt schicken, was dann einen Pfad auf eine lokale Datei zurückliefert, welches man dann dem WebBrowser als Navigationsziel angeben kann.

Delphi-Quellcode:
url := wuppdi('foo'); // Liefert "<AppPath>\html\foo.html" zurück
WebBrowser1.Navigate( url );


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 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-2025 by Thomas Breitkreuz