MS Webbrowser + eingebettete HTML-Ressource + res: // Protokoll

8

Ich habe eine eingebettete HTML-Ressource (helloworld.htm) in meinem Visual Studio-Projekt. (Ich habe dem Projekt eine HTML-Datei hinzugefügt und seine Eigenschaften auf "Embedded Resource" gesetzt.

Innerhalb derselben Anwendung habe ich ein WebBrowser-Steuerelement.

Ich möchte das WebBrowser-Steuerelement anweisen, die HTML-Ressource mithilfe der res: // Protokoll .

Aber ich kann das genaue Format nicht herausfinden, das benötigt wird, um eine eingebettete Ressource zu adressieren, die diesen Art URL verwendet.

Irgendwelche Ideen? Danke!

    
user144051 10.08.2009, 12:32
quelle

7 Antworten

11

Ich weiß, dass dieser Thread tot ist, aber ich musste dies gestern tun und konnte keine dieser Methoden zum Laufen bringen. Also habe ich ein wenig recherchiert und die Methode unten gefunden, indem ich die Stream-Klasse benutzt habe. Ich dachte, ich würde es hier posten, nur für den Fall, dass jemand anderes in den gleichen Unsinn gerät:

%Vor%

Das funktionierte für mich ohne jegliche Bastelei, und es war so einfach. Ich hoffe, es kommt einem anderen zugute!

    
Chris Barlow 03.02.2011 13:38
quelle
6

Das res: -Protokoll ist nicht tot und ist immer noch eine großartige Möglichkeit, Webseiten mit einem WebBrowser -Steuerelement in Windows-Anwendungen einzubetten. Leider, scheint es mir, dass es zwei Arten von Ressourcen in exe- und dll-Dateien gibt: C-Ressourcen und .net-Ressourcen. Es ist möglich, C-Ressourcen in eine .net-DLL einzubetten, aber ich habe noch nicht herausgefunden, wie das geht.

Um Ihre Frage zu beantworten, ist das res-Protokoll dokumentiert unter hier , aber tatsächlich die dll oder exe zu bauen ist der schwierige Teil. Das res-Protokoll ist einfach genug. Der grundlegende Kern davon ist, dass Sie res: // angeben, gefolgt von dem Pfad zur ausführbaren Datei oder DLL (nur der DLL-Name, wenn es im aktuellen Pfad ist). Folgen Sie für Ressourcen vom Typ HTML dem Dateinamen. Hier ist ein kürzlich erschienener MSDN-Artikel über einige bekannte Probleme mit dem res-Protokoll: Ссылка .

Das Erstellen der DLL- oder EXE-Ressourcen kann ein wenig schwierig sein. Für die einfachsten Ergebnisse sollten Sie alle Ihre Ressourcen vom Typ HTML erstellen (auch Ihre .js, .png, .jpg-Dateien). Anstatt Ihre Ressourcen mit einer #definierten Ressourcenkennung zu benennen, können Sie mit modernen res-Dateien die Dateien mit einer Zeichenfolge benennen. Dadurch wird Ihr Leben viel einfacher.

Erweiterter Tipp: Die Namen von Ordnern im Ressourcennamen sind kompliziert. Ich habe es noch nicht verstanden. Ich denke, dass Sie in der Lage sein können, Ordner zu simulieren, indem Sie Schrägstriche in den Ressourcennamen einfügen, aber ich denke, dass das res-Protokoll durch die Schrägstriche verwirrt wird, da der erste Teil des Pfades der Ressourcentyp ist. Das explizite Angeben des Ressourcentyps kann dies verringern.

Erweiterter Tipp 2: Für den Pfad können neuere IE-Versionen mit dem Zeichen "\" umgehen, aber Sie können "% 5C" als Ersatz für "\" verwenden, wenn Sie angeben müssen die absolute oder relative Position der DLL oder EXE.

Zusätzliche Ressource:
MSDN Social: Webbrowser und res: Protokoll
DelphiDabbler: Erstellen und Verwenden von HTML Ressourcendateien

    
Tim Ludwinski 28.03.2013 01:03
quelle
2
%Vor%     
thetanmonger 17.08.2009 20:48
quelle
1

Dies ist die kleine Hilfsklasse und wie man sie nennt:

So rufen Sie an:

%Vor%

Helferklasse:

%Vor%     
Eric Ouellet 23.01.2014 21:49
quelle
0
%Vor%

Wo:

  • webBrowser1 ist das WebBrowser -Steuerelement
  • ResourceinWebBrowser ist Ihr exe / Projektname.
  • HTML ist der Name Ihrer eingebetteten HTML-Ressource
miniGweek 14.12.2009 16:19
quelle
0

Der einfachste Weg, vielleicht nicht der sicherste oder vernünftigste, besteht darin, eine Settings-Variable zu haben, die die Basiswebseite bildet. Setzen Sie Ihre eigenen Marker-Tags auf REPLACE, wenn Sie die Strings in Paketen streamen. Auf diese Weise müssen Sie, sobald die nicht dynamischen Teile der Webseite fertiggestellt sind, nur die dynamischen Teile in der Zeichenfolge REPLACE rendern. Dann setze den DoumentText = stringWebStream. Stellen Sie sicher, dass AllowNavigation = True festgelegt ist.

    
Rafo Bro 18.03.2014 03:10
quelle
0

Ich weiß, dass es vor langer Zeit gefragt wurde, aber hier ist wie IE interpretiert das Protokoll res: :

  

res: // sFile [/ sTyp] / sID

     

sFile Prozentsatzcodierter Pfad und Dateiname des Moduls, das die Ressource enthält.

     

sType Optional. Zeichenfolge oder numerischer Ressourcentyp Dies kann entweder eine benutzerdefinierte Ressource oder einer der vordefinierten Ressourcentypen sein   werden von der Funktion FindResource erkannt. Wenn eine numerische Ressource   Typ ist angegeben, die Nummer des Bezeichners muss einem # folgen   Charakter. Wenn dieser Parameter nicht angegeben ist, die Standardressource   type ist RT_HTML oder RT_FILE.

     

sID String oder numerische Kennung der Ressource. Wenn ein numerischer Bezeichner angegeben ist, ist die tatsächliche Nummer des Bezeichners, nicht der   Bezeichner selbst muss einem # -Zeichen folgen. Siehe das Beispiel für mehr   Informationen.

    
c00000fd 23.03.2015 02:16
quelle