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.

Ebenso weise ich nochmal auf einen blöden Fehler hin, Welchen man natürlich vermeiden möchte!

Awendungsbeispiele

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

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

Man kennt diese Vorgehensweise durchaus von bekannten Programmen, Welche damit dann z. B. auf Paypal verweisen.

Dazu klickt man dann wie im folgenden Bild auf einen programminternen Link und im nächsten Schritt öffnet sich der Browser:

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/und Ereignisse zurückgreifen.

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

Es gehört meiner Meinung nach zur guten Manier, dem Nutzer zu erklären, dass sich dort jetzt sein Browser öffnet.

Ansonsten wäre das meiner Meinung nach eine schlechte User-Experience, wenn sich halt plötzlich der Browser öffnet.

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")
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.

Anschließend wird der Browser die Anfrage nach seinem Ermessen und mit eventuellen Parametern verarbeiten.

Ein analog angelehnten Beispiel sehen wir im nächsten Abschnitt, wo wir den Browser dann gesondert angeben.

Browser explizit angeben

VB.NET Webseite öffnen - Browser wählen
VB.NET Webseite öffnen – Browser wählen

Wer einen konkreten Browser übergeben möchte, statt den Standardbrowser zu nutzen, kann dies häufig einfach tun.

Viele gängige Programme können mit „Dingern“ namens Parametern gestartet/ausgeführt werden.

Eventuell ist Dir der Begriff Parameter ja bereits aus der Programmierung bekannt (ich denke mal :P).

Es sind letztendlich zusätzliche – ja wie sag ich lol – gewisse Werte in Form von Wörtern, oder auch Buchstaben, etc.

Diese Werte werden dann als zusätzliche „Argumente“, also Zusatzinformationen an das zu startende Programm übergeben.

Damit kann das Programm diese Parameter/Argumente bei Bedarf auswerten und nach eigener Logik verarbeiten.

Ein Beispiel für den Microsoft Edge Browser sieht z. B. wie folgt aus:

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 und die gewünschte Adresse als zweiten Parameter, sprich als Start-Argument zu übergeben.

Fehler abfangen

VB.NET Webseite öffnen - Fehler abfangen
VB.NET Webseite öffnen – Fehler abfangen

Natürlich kann es auch hier vorkommen, dass Fehler auftauchen, daher sollte man auch hier ggf. auf eine mögliche Fehlerbehandlung zurückgreifen.

Dafür verwenden wir wie gewohnt die „Try-Catch“-Anweisung und fangen den Fehler in diesem Fall global ab.

In diesem Fall reicht dies denke ich so aus, obwohl man vermutlich noch tiefer graben könnte, Welche exakten Fehler auftreten können.

Dazu kann man natürlich einen Blick auf die jeweilige Seite der Microsoft-Dokumentation zur „Process.Start“-Methode werfen.

Dann würde man ggf. eine saubere Trennung zwischen den einzelnen Fehlern erarbeiten können, um separat reagieren zu können.

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.

Ich selbst bin natürlich auch beim Schreiben dieses Beitrags prompt auf diesen Fehler gestoßen – seufz.

Daher dachte ich mir: „Eeyup, das nimmst du direkt mit in den Beitrag rein ;)“.

Um diesen Fehler, bzw. dieses Problem zu vermeiden muss man eine neue Instanz der ProcessStartInfo-Klasse erstellen und konfigurieren.

Die UseShellExecute-Eigenschaft muss hierbei explizit auf True gestellt werden, damit man den Fehler vermeidet.

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.

Daher findest Du wie in fast jedem Beitrag, den Code hier am Ende in kompletter Form:

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

Weiterführende Links

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.