Browser für lokale Webanwendung

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von none.

    Browser für lokale Webanwendung

    Hallo Ihr Wissenden!

    Als absoluter DAU auf diesem Gebiet, entschuldige ich mich vorab für meine Frage. Der Sachverahlt sieht folgendermaßen aus:

    Habe eine Web-Site geschrieben (internes Telefonverzeichnis) und möchte dies in einem separaten Browser/Anzeigefenster aufrufen können.

    Den Code den ich verwendet habe sieht folgendermaßen aus:

    Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    WebBrowser1.Navigate("Telefonverzeichnis.html")
    End Sub
    End Class

    Wie ich nun festgestellt habe, funktioniert das Ganze zwar wenn ich eine externe Web-Site wie google.de eingebe. Wenn ich aber einen relativen Pfad verwende geht es nicht. ?(
    Anzumerken ist, der Browser als auch die Seite im gleichen Ordner gespeichert sind.

    Wie bekomme ich es also hin, dass ich die Site "Telefonverzeichnis.html" mit einem Klick öffnet???

    Danke für Eure Hilfe...
    none
    Willkommen im Forum. :thumbup:
    Es ist ganz einfach:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    2. WebBrowser1.DocumentText = IO.File.ReadAllText("C:\Temp\Telefonverzeichnis.html")
    3. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo Rod,

    vielen Dank für Deine Hilfe! Jetzt habe ich noch zwei Fragen:

    1. Die html-Datei liegt im gleichen Ordner wie der Browser. Dies ist erforderlich, da der neue Browser auf verschiedenen Rechnern zum Einsatz kommen soll. In Html kann ich den Pfad wie folgt deklarieren: Pfad:"Telefonverzeichnis.html"! In VB funktoniert das nicht obwohl beide Dateien in ein und dem selben Ordner liegen, warum?

    2. Was ist eine C&P-Bremse?

    LG + Danke!
    none
    @none:
    1. Gewöhne Dir an, immer den kompletten Pfad reinzuschreiben, wenn einer möglich ist. Es kommt der Tag, da liegen Dateien auf anderen Pfaden oder Du verwendest einen OpenFileDialog.
    2. ein kleiner Fehler, so dass der kopierte Code richtig aussieht aber nicht läuft, z.B.

    VB.NET-Quellcode

    1. Dim lines = System.IO.ReadAllLines(PFAD_ZU_DEINER_DATEI)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB.NET-Quellcode

    1. WebBrowser1.Navigate("file://PFAD_ZUR_DATEI/Datei.html")
    Könnte auch funktionieren, zumindest sieht man das immer bei vielen Browsern. Wenn du glück hast, funktionieren hier auch relative Pfade.
    Von meinem iPhone gesendet
    Wenn die Html Datei immer im selben Ordner wie die .exe liegen soll, tuts auch:

    VB.NET-Quellcode

    1. Dim AppPath As String 'Deklariert die Variable als String
    2. AppPath = System.AppDomain.CurrentDomain.BaseDirectory 'Ermittelt den Pfad der .exe und schreibt ihn in die Variable
    3. WebBrowser1.DocumentText = IO.File.ReadAllText(AppPath & "Datei.html")
    Hallo Ihr Wissenden!

    Der Code von Rod funktioniert soweit ganz gut.

    Code:
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    WebBrowser1.DocumentText = IO.File.ReadAllText("C:\Temp\Telefonverzeichnis.html")
    End Sub
    Doch habe ich dabei folgendes Problem:

    Ich möchte gern, dass ich die zu öffnende Html-Seite die in dem gleichen Ordner/Ebene wie die Exe ist, aufgerufen wird. Dies ist in soweit wichtig, da die zu erzeugende Datei immer funktioniert, egal auf welchem Verzeichnis der Ordner 'Browser' abgelegt wird.

    Die Variante von nikeee13 funktioniert nur, wenn ich -wie bei der Rod-Variante- den genauenPfad hinterlege, schade.

    Frage:
    1. Wie ermittle ich die für den Start des Browsers erforderliche Exe?
    2. Wie mache ich der Exe klar, dass die zu öffnende Datei im gleichen Ordner auf der selben Ebene liegt und das die Exe diese Datei öffnen soll?

    Danke im Voraus...
    none
    Path.GetFullPath() liefert dir den absoluten Pfad eines relativen Pfades basierend auf deinem Arbeitsverzeichnis.
    msdn.microsoft.com/de-de/libra….io.path.getfullpath.aspx
    Von meinem iPhone gesendet

    VB.NET-Quellcode

    1. Dim programmPfad As String = My.Application.Info.DirectoryPath
    2. Dim zuOeffendenDatei As String = System.IO.Path.Combine(programmPfad, "Telefonverzeichnis.html")
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Hallo Timonator,

    auf keinen Fall wollte ich respektlos sein, sorry! Aber ich habe Deine Version ausprobiert und leider bin ich nicht zu dem gewünschten Ergebnis gekommen. Sicherlich ist dies meiner Umwissenheit geschuldet, aber dann gleich von Respektlosigkeit zu reden halte ich für ein wenig überzogen. Ich achte die Leute, die anderen helfen wollen sehr!

    LG
    none

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „none“ ()

    Ok, du hast allerdings mit keinem Wort erwähnt, das du den code ausprobiert hast ! Aus meiner Sicht hast du meinen post komplett ignoriert.

    Der code funktioniert aber mit Sicherheit, habe es getestet ! Pack ihn mal in das Form load event.
    @none: machma

    VB.NET-Quellcode

    1. MessageBox.Show(Application.StartupPath)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    GESCHAFFT!

    Hallo Ihr Wissenden,

    der Browser funktioniert und die Lösung des Problems war einfacher als gedacht! Habe die zu öffnende "html-Datei" unter die Exe im Bin-Ordner gelegt und dann im Code darauf verwiesen.

    Code:


    Private Sub
    Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
    Button1.Click

    WebBrowser1.DocumentText = IO.File.ReadAllText("Datei.html")

    End Sub

    --------------------------------------------


    Das war alles...

    Herzlichen Dank für Eure Hilfestellungen...

    Gruß
    none