HTML-Datei anzeigen (ShellExecute?)
-
Hiho,
sagt mal wie kann ich mir eine in mien Projekt eingefügte HTML-Datei
anzeigen lassen? Mit ShellExecute habe ichs erfolgslos versucht.
Die Datei ist vorhanden als IDR_HTML1Gibt es noch einen schöneren Weg die Datei anzuzeigen, als mit dem
Standardbrowser? Es geht um eine Lizenzinfo zu Freeware die angezeigt
werden soll...Dank euch

-
Den IE gibts doch auch als ActiveX, wenn ich mich recht erinnere. Damit solltest Du die Seite eigentlich anzeigen können.
-
Das ist ja dann nicht ganz so gut wenn jemand den IE nicht hat
und somit sagen kann "habe die Lizenzinfo betr. Haftung etc nicht gesehen".Aber wenn ich es so machen würde, wie würde ich über .Navigate(...) dann
mein IDR_HTML1 ansprechen?Und ein anderer Weg wäre wohl nur die Resource zu entpacken und dann
z.B. von c:\ zu starten? Da wäre ich ja wieder bei ShellExecute
-
Naja, also ein Windows (und dafür programierst Du ja!?) ohne IE gibts seit Win98 o.so. nicht mehr und ich bin mir nicht mal sicher, ob das ActiveX auf den Explorer zurückgreift. Aber so oder so must du die resource wahrscheinlich entpacken, eine Variante direkt html ressouren anzuzeigen ist mir so nicht bekannt. Ich kenn mich leider mit WindowsForms nicht so aus, aber damit sollte so etwas ähnliches gehen.
Musst Du denn unbedingt die html-Datei als res. einbinden? Sonst könntest Du deinen html-'code' direkt in ein form schreiben.
-
Auf welchem Weg ich das anzeige ist fast egal. Mit den "Forms" habe ich
allerdings noch null Erfahrung...
-
Suchst du vielleicht CHtmlView?
Grüssli
-
Noch viel einfacher. Es würde schon reichen wenn ich die Resource
in mein Projekt aufnehme (fertige HTML-Datei) und dann durch mein Programm
entpacke.Ich dachte sofort an CopyFile:
CopyFile("Lizenzvertrag.htm","C:\\LZV.htm",FALSE);Nur da passiert absolut nichts. Die Datei wird nicht geschrieben.
Habe sie aber über Vorhandenes Element hinzufügen in mein Projekt
aufgenommen...
-
Hier noch eine zweite Variante die zwar eine Datei in C:\ schreibt,
aber mit der Größe 0 ...HINSTANCE hApp = ::GetModuleHandle(0); ASSERT(hApp); HRSRC hResInfo; hResInfo = ::FindResource(hApp,MAKEINTRESOURCE(IDR_HTML1),TEXT("HTML")); HGLOBAL hRes = ::LoadResource(hApp, hResInfo); BYTE *PROG = (LPBYTE)::LockResource(hRes); int PROG_SIZE = SizeofResource(hApp,hResInfo); CFile OutFile; OutFile.Open("C:\\lzv2.htm",CFile::modeCreate | CFile::modeWrite,NULL); OutFile.Write(PROG,PROG_SIZE); OutFile.Close();So langsam gehen mir die Ideen aus.

-
Genau (dravere) CHtmlView ist die Forms Variante (war schon spät gestern
) versuchs doch mal damit, das wäre IMHO die beste Methode.
-
CHtmlView entspricht ja der CppWebBrowser Komponente.
Wenn ich es recht verstehe, erwartet Navigate den kompletten Pfad zu einer Datei.
Nun wäre doch eher die Frage, wie ließt man den Pfad aus, in welchem sich die .exe befindet und dort hängt man dann den relativen Ort seiner lokalen Datei an...!?Weiterhin wäre interessant zu wissen, wie die Universal Naming Convention (UNC) funktioniert, oder was bei Navigate2 a PIDL that represents a folder in the Shell namespace bedeutet!
Ich habe es gefunden: http://www.c-plusplus.net/forum/viewtopic-var-t-is-112083-and-highlight-is-navigate+tcppwebbrowser+cppwebbrowser.html
juhu!
-
Schau hier:
http://www.microsoft.com/msj/0100/c/c0100.aspx