Problem mit URL Handler

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Linkai.

    Problem mit URL Handler

    Hallo liebe Community,

    Ich hab mal wieder nen totalen Hänger..
    Ich habe in einem Programm ein Webbrowser, welcher den User zu einer News.PHP navigiert.
    Diese sehen so aus: [Datum]NewsKategorie: Kurzer Text <-- Link
    Wenn ich nun auf den Link klicke, soll der User auf die Seite mit dem dazugehörigen, ausführlichen Newstext geleitet werden.
    Nun, da der Webbrowser ja ein Bestandteil vom IE ist, öffnet sich dank target="_blank" ein neues Fenster des Internet Explorers.
    Nun möchte ich aber, dass der besagte Link im Standardbrowser geöffnet wird.

    Meine Idee:
    Ich habe in der Registry einen URL Handler hinzugefügt.
    Das ganze funktioniert soweit wunderbar!
    gebe ich nun im Browser meinhandler:google.de ein wird mein Programm gestartet.
    Zum abfangen es mitgelieferten Parameters verwende ich nun:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. ExecuteParams()
    4. End Sub
    5. Private Sub ExecuteParams()
    6. 'Die Parameter welche beim Start mitgegeben werden können
    7. Dim args As String()
    8. args = Environment.GetCommandLineArgs()
    9. 'bei 1 starten, weil das Programm IMMER seinen eigenen
    10. 'FULLPATH als ersten Parameter erkennt!
    11. For i As Integer = 1 To args.Length - 1
    12. Select Case args(i).ToLower
    13. Case "-?", "-help", "-info"
    14. MessageBox.Show(My.Computer.Name, "? / help / info")
    15. Case Else
    16. Try
    17. Process.Start(args(i))
    18. Me.Close()
    19. Catch ex As Exception
    20. MsgBox(ex.Message)
    21. End Try
    22. 'MessageBox.Show("Unbekannter Parameter:" & vbCrLf & args(i), "Unbekannt!", MessageBoxButtons.OK, MessageBoxIcon.Information)
    23. End Select
    24. Next
    25. End Sub
    26. End Class


    Bevor ich das me.close() eingefügt hatte, hat sich das Programm immer wieder geöffnet, nun schließt sich jede Instanz halt wieder jedoch wird der Browser nicht einmal geöffnet ..?
    Viele Frauen kamen, viele sind gegangen, eine ist geblieben 12.5.12 <3 ich liebe dich Schatz :love: :love:
    Okay, hat sich erledigt :P hatte den Protocol-Handler nicht ganz verstanden:
    Also mein Programm hat sich immer selbst gestartet da der aufruf im Browser durch meinhandler:google.de nicht nur google.de als parameter
    an mein Programm weitergegeben hat sondern den kompletten text mit meinhandler: davor. Dies führte dazu, dass er das Programm immer wieder ausgeführt und beendet hat :D also falls das einer nachmachen will: nicht vergessen den Handlername im Parameter mit nichts zu ersetzen :D
    Viele Frauen kamen, viele sind gegangen, eine ist geblieben 12.5.12 <3 ich liebe dich Schatz :love: :love: