VB.NET Webseite öffnen

VB.NET Webseite öffnen
VB.NET Webseite öffnen

VB.NET Webseite öffnen

In VB.NET eine Webseite öffnen muss nicht schwer sein, obwohl es dafür verschiedene Wege gibt.

Dieser Beitrag hier dient als eine Art Übersicht mit zusätzlichem Content und verschiedenen Ansätzen.

Wenn Du auf der Suche nach spezifischeren Themen wie dem Webbrowser-Control bist, dann wirst Du auch bei meinem anderen Beiträgen fündig (werden noch ergänzt!): VB.NET Webbrowser Control, „VB.NET Get Element by Class„.

Awendungsbeispiele

Man kennt es ggf. aus einigen Anwendungen, dass das Web, bzw. der jeweilig installierter Browser mit einer Seite geöffnet wird.

Das erste gängige und mir einfallende Beispiel, wäre ein PayPal-Link, Welcher den Nutzer auf eine PayPal Spenden-, bzw. Überweisungsseite leiten könnte.

Das könnte dann zum Beispiel so aussehen:

VB.NET Webseite öffnen mit linklabel
VB.NET Webseite öffnen mit linklabel

Code – VB.NET Webseite öffnen

Um in VB.NET eine Webseite zu öffnen können wir natürlich auf verschiedene Steuerelemente, oder z. B. Ereignisse zurückgreifen.

Sei es ein PayPal-Spendenbutton, wie oben gezeigt in einem LinkLabel, oder z. B. beim Öffnen eines Dialoges.

Es gehört allerdings zur guten Manier dem Nutzer es irgendwie klar zu machen, dass sich dort jetzt sein Browser öffnet, sonst wäre das meiner Meinung nach eine schlechte User-Experience.

Damit wir final eine Seite öffnen können, brauchen wir für unser Beispiel die Start-Methode aus der Process-Klasse

Process.Start("https://google.de")

Das delegiert die Ausführung praktisch ans System und das System schaut: „Okay, wie kann ich das öffnen?“.

Da für dieses Schema im Hintergrund zu aller Wahrscheinlichkeit ein Browser hinterlegt ist, meldet sich der Standardbrowser und verarbeitet diese Eingabe.

Browser explizit angeben

Wer einen konkreten Browser übergeben möchte, statt den Standardbrowser zu nutzen, kann dies wie folgt tun:

Process.Start("C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe", "https://google.de")

Es reicht also, der „Process.Start„-Methode den jeweiligen Pfad zum Browser als erstes Argument zu übergeben und letztendlich die gewünschte Adresse als zweiten Parameter, sprich als Start-Argument.

Fehler abfangen

Natürlich kann es auch hier vorkommen, dass Fehler auftauchen, daher sollte man auch die „Process.Start“-Operation mit einem Try-Catch auf die Sprünge helfen.

Private Sub btnCatchPathError_Click(sender As Object, e As EventArgs) Handles btnCatchPathError.Click
    Dim path = "C:\Program Files\Google\Chrome\Applicatissson\chrome.exe"
    Try
        Process.Start(path, "https://paypal.de")
    Catch ex As Exception
        MessageBox.Show($"Error opening the target path: {path}")
    End Try
End Sub

.NET Core Problem lösen

Wenn man den gezeigten Code auf einer .NET Core Plattform-App verwendet, wird man eventuell auf einen Fehler stoßen.

Um diesen Fehler, bzw. dieses Problem zu vermeiden muss man eine neue Instanz der ProcessStartInfo-Klasse erstellen und die UseShellExecute-Eigenschaft explizit auf True stellen.

Hier drunter findest Du einmal das Beispiel mit einer URL und noch ein Beispiel mit der Angabe eines Browsers und URL.

    Private Sub btnOpenCoreSafe_Click(sender As Object, e As EventArgs) Handles btnOpenCoreSafe.Click
        'Dim processStartInfo = New ProcessStartInfo()
        'With processStartInfo
        '    .FileName = "https://paypal.de"
        '    .UseShellExecute = True
        'End With
        'Process.Start(processStartInfo)

        Dim processStartInfo = New ProcessStartInfo()
        With processStartInfo
            .FileName = "C:\Program Files\Google\Chrome\Application\chrome.exe"
            .Arguments = "https://paypal.de"
            .UseShellExecute = True
        End With
        Process.Start(processStartInfo)
    End Sub

Kompletter Code – VB.NET Webseite öffnen

Obwohl sich der Code in diesem Beispiel wohl bescheiden hält, werde ich mich trotzdem mal an meine Routine halten, den Code hier in kompletter Form einzufügen:

Public Class Form1

    Private Sub llblOpenPayPalWithChrome_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles llblOpenPayPalWithChrome.LinkClicked
        Process.Start("C:\Program Files\Google\Chrome\Application\chrome.exe", "https://paypal.de")
    End Sub

    Private Sub btnOpenGoogleWithEdge_Click(sender As Object, e As EventArgs) Handles btnOpenGoogleWithEdge.Click
        Process.Start("C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe", "https://paypal.de")
    End Sub

    Private Sub btnOpenYouTubeWithDefaultBrowser_Click(sender As Object, e As EventArgs) Handles btnOpenYouTubeWithDefaultBrowser.Click
        Process.Start("https://youtube.de")
    End Sub

    Private Sub btnCatchPathError_Click(sender As Object, e As EventArgs) Handles btnCatchPathError.Click
        Dim path = "C:\Program Files\Google\Chrome\Applicatissson\chrome.exe"
        Try
            Process.Start(path, "https://paypal.de")
        Catch ex As Exception
            MessageBox.Show($"Error opening the target path: {path}")
        End Try
    End Sub

    Private Sub btnOpenCoreSafe_Click(sender As Object, e As EventArgs) Handles btnOpenCoreSafe.Click
        'Dim processStartInfo = New ProcessStartInfo()
        'With processStartInfo
        '    .FileName = "https://paypal.de"
        '    .UseShellExecute = True
        'End With
        'Process.Start(processStartInfo)

        Dim processStartInfo = New ProcessStartInfo()
        With processStartInfo
            .FileName = "C:\Program Files\Google\Chrome\Application\chrome.exe"
            .Arguments = "https://paypal.de"
            .UseShellExecute = True
        End With
        Process.Start(processStartInfo)
    End Sub
End Class

Downloads

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.