9
votes

MS WebBrowser + ressource HTML intégrée + RES: // Protocole

J'ai une ressource HTML intégrée (helloworld.htm) dans mon projet Visual Studio. (C'est-à-dire que j'ai ajouté un fichier HTML au projet et définir ses propriétés sur "Ressource intégrée".

Dans la même application, j'ai un contrôle WebBrowser.

J'aimerais diriger le contrôle WebBrowser pour afficher la ressource HTML à l'aide de res: // protocole .

Mais je ne peux pas comprendre le format exact nécessaire pour aborder une ressource intégrée à l'aide de ce style d'URL.

Des idées? Merci!


2 commentaires

J'ai eu ceci pour travailler auparavant, mais j'ai oublié le format de l'URL W / RES: // Protocole.


Des mises à jour sont là?


7 Réponses :


2
votes
res://project.exe/helloworld.htm

0 commentaires

0
votes
webBrowser1.DocumentText = ResourceinWebBrowser.Properties.Resources.HTML.ToString();
Where:
webBrowser1 is the WebBrowser control
ResourceinWebBrowser is your exe / Project Name.
HTML is the name of your embedded html resource

0 commentaires

12
votes

Je sais que ce fil est mort, mais je devais le faire hier et ne pouvais pas obtenir aucune de ces méthodes pour travailler. J'ai donc fait une petite recherche et j'ai trouvé la méthode ci-dessous en utilisant la classe de flux. Je pensais que je le posterais ici, juste au cas où quelqu'un d'autre rencontre le même non-sens: xxx

Cela a fonctionné pour moi sans tout bricolage, et c'était si simple. J'espère que cela profite à quelqu'un d'autre!


1 commentaires

En quelque sorte, VLC ActiveX ne fonctionne pas de cette manière ... Stackoverflow.com/questions/14749242/...



7
votes

Le protocole res: n'est pas mort et est toujours un excellent moyen d'intégrer des pages Web dans des applications Windows à l'aide d'un WebBrowser . Malheureusement, Il me semble qu'il y a deux types de ressources dans les fichiers EXE et DLL: c Ressources et ressources .NET. Il peut être possible d'intégrer C ressources C dans une dll .NET mais je n'ai pas encore compris comment.

Pour répondre à votre question, Le protocole RES est documenté à ici mais en fait la construction de la DLL ou de l'EXE est la partie délicate. Le protocole RES est assez simple. Le gist de base de celui-ci est que vous spécifiez Res: //, suivez-le par le chemin d'accès à l'exécutable ou à la DLL (juste le nom de la DLL si elle est dans le chemin actuel). Pour les ressources de type HTML, suivez cela avec le nom de fichier. Voici un article récent MSDN les discussions sur certains problèmes connus avec le protocole RES: http://support.microsoft.com/kb/220830 .

Construire les ressources DLL ou EXE peut être un peu délicat. Pour les résultats les plus faciles, apportez toutes vos ressources de type HTML (même vos fichiers .png, .jpg). Au lieu de nommer vos ressources avec un identifiant de ressources #definefin, les fichiers RES modernes vous permettent de nommer les fichiers avec une chaîne. Faire cela facilitera votre vie.

Conseil avancé: avoir des noms de dossiers dans le nom de la ressource est délicat; Je ne l'ai pas encore compris. Je pense que vous pourriez être capable de simuler des dossiers en mettant des barres de barres dans le nom de la ressource, mais je pense que RES protocole est confondu par les barres obliques pensant que la première partie du chemin est le type de ressource. Spécifier explicitement le type de ressource peut atténuer cela.

astuce avancée 2: pour la trajectoire de versions plus récentes de IE peut traiter le caractère "\ ', mais vous pouvez utiliser"% 5c' comme substitut "\ 'si vous devez spécifier l'emplacement absolu ou relatif de la DLL ou des EXE.

ressource supplémentaire:
MSDN Social: WebBrowser et RES: Protocole
Delfidabbler: Comment créer et utiliser des fichiers de ressources HTML


1 commentaires

C'est la meilleure réponse, maintenant je suis conscient de la limitation du protocole RES, car je ne peux pas définir de type MIME de manière programmative pour les fichiers .mht.



1
votes

Ceci est la petite classe d'assistance et comment l'appeler:

Comment appeler: xxx

Classe d'assistance: xxx


0 commentaires

0
votes

Le moyen le plus simple, peut-être pas le plus sûr ou le plus sain d'esprit, est d'avoir une variable de réglages composée de la page Web de base, placez vos propres étiquettes de marqueur pour remplacer lors de la diffusion des cordes dans des paquets. De cette façon, une fois que les portions non dynamiques de la page Web sont terminées, il suffit de rendre les parties dynamiques à remplacer dans la chaîne. Ensuite, réglez le DoumentText = StringWebstream. Assurez-vous de définir l'allownavigation = VRAI.


0 commentaires

0
votes

Je sais que cela a été posé il y a longtemps, mais Voici comment IE interprète le res: protocole:

res: // sfsile [/ stype] / sid

sfile chemin et nom de fichier codé du module contenant la ressource.

stype facultatif. String ou type de ressource numérique. Cela peut être une ressource personnalisée ou l'un des types de ressources prédéfinis qui sont reconnus par le Fonction Findresource . Si une ressource numérique Le type est spécifié, le numéro de l'identifiant doit suivre un # personnage. Si ce paramètre n'est pas spécifié, la ressource par défaut Type est RT_HTML ou RT_FILE.

sid String ou identifiant numérique de la ressource. Si un identifiant numérique est spécifié, le nombre réel de l'identifiant, pas le Identifiant lui-même, doit suivre un caractère #. Voir l'exemple pour plus informations.


0 commentaires