Die Community zu .NET und Classic VB.
Menü

VB.NET-Tipp 0053: Eigenes Protokoll beim Betriebssystem registrieren lassen

 von 

Beschreibung

Dieser Tipp soll zeigen, wie man Links aus dem Webbrowser abfängt, die mit einem bestimmten Protokoll anfangen. In der Praxis ist dieses Verfahren bei eDonkey und eMule im Einsatz. Für dieses Beispiel wurde das Protkoll "pcat" gewählt.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Framework-Version(en):

.NET Framework 1.0, .NET Framework 1.1, .NET Framework 2.0, .NET Framework 3.0, .NET Framework 3.5, .NET Framework 4

.NET-Version(en):

Visual Basic 2002, Visual Basic 2003, Visual Basic 2005, Visual Basic 2008, Visual Basic 2010

Download:

Download des Beispielprojektes [2,64 KB]

' Dieser Quellcode stammt von http://www.activevb.de
' und kann frei verwendet werden. Für eventuelle Schäden
' wird nicht gehaftet.

' Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
' Ansonsten viel Spaß und Erfolg mit diesem Source!

' Projektversion:   Visual Studio 2002/2003
' Option Strict:    Aus
' Option Explicit:  An
'
' Referenzen: 
'  - System
'  - System.Data
'  - System.XML
'
' Imports: 
'  - Microsoft.VisualBasic
'  - System
'  - System.Collections
'  - System.Data
'  - System.Diagnostics
'

' ##############################################################################
' ################################ Module1.vb ##################################
' ##############################################################################
Module Module1

    Sub Main()
        Dim Key As Microsoft.Win32.RegistryKey
        Dim P As String = "pcat"
        System.Console.WriteLine("+--------------------------------------+")
        System.Console.WriteLine("| Eigenes Protokoll definieren         |")
        System.Console.WriteLine("+--------------------------------------+")
        System.Console.WriteLine("| Drücken Sie ENTER zum Beenden.       |")
        System.Console.WriteLine("+--------------------------------------+")
        System.Console.WriteLine()
        ' Wenn Parameter übergeben werden, so werden diese angezeigt
        ' Der Parameter "/install" sorgt für eine Installation des Protokolls,
        ' der Parameter "/uninstall" entfernt die Einträge aus der Registry
        ' wieder.
        Select Case Command()
            Case "/install"
                ' Protokoll-Klasse installieren
                Key = Microsoft.Win32.Registry.ClassesRoot.CreateSubKey(P + "\")
                ' Protokoll-Name installieren
                Key.SetValue("", "URL: " + P + "-Protokoll")
                ' Als URL-Protokoll definieren
                Key.SetValue("URL Protocol", "")
                ' Schlüssel für Anwendung zum Öffnen festlegen
                Key = Key.CreateSubKey("shell\open\command")
                Key.SetValue("", System.Reflection.Assembly. _
                    GetExecutingAssembly.Location + " %1")
                ' Icon festlegen
                Key = Key.CreateSubKey("DefaultIcon")
                Key.SetValue("", System.Reflection.Assembly. _
                    GetExecutingAssembly.Location)
                System.Console.WriteLine("Protokoll " + P + _
                                         ":// wurde installiert.")
            Case "/uninstall"
                Key = Microsoft.Win32.Registry.ClassesRoot
                Key.DeleteSubKeyTree(P + "\")
                System.Console.WriteLine("Protokoll " + P + _
                                         ":// wurde deinstalliert.")
            Case Else
                System.Console.WriteLine("Folgende Parameter wurden übergeben:")
                System.Console.WriteLine(Command)
        End Select
        System.Console.ReadLine()
    End Sub

End Module

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 4 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Fabian00 am 23.01.2009 um 12:10

Er definiert ein Protokoll, welches beim Aufrufen geöffnet wird. Genauso sind http & ftp usw Protokolle in der Registry definiert. Das was du meinst ist doch von fall zu fall unterschiedlich. Für eine Client/Server Verbindung ohne HTTP musst du dir selbst überlegen: ASCII oder Binär, welche Daten müssen übertragen werden. Soll verschlüsselt werden...

MfG,
Fabian

Kommentar von Hollow am 10.04.2007 um 02:40

Hi,

Ich glaub die Überschrift ist etwas falsch gewählt!
Hier wird kein eigenes Protokoll definiert, sondern lediglich bekannt gemacht. Gleiches könnte man auch einfacher durch eine *reg Datei lösen und muss dafür nicht eine Anwendung entwickeln. Wenn es um das hinzufügen bzw. löschen von Registry Schlüsseln geht, würde ich "regedit" empfehlen.
Der Tipp würde wohl eher in die Kategorie "Registry bearbeiten" passen. In dieser Rubrik hätte ich eher ein Benutzerdefiniertes Verbindungsprotokoll zwischen Client - Server erwartet.

Mfg

Kommentar von TTP am 24.08.2005 um 13:30

warum machst du das nicht über WinSock oder wie das bei .NET heißt?

Kommentar von r00kie am 18.11.2004 um 17:05

Super, danke,

nur wie bekomme ich es hin das zwar meine Anwendung verarbeitet wird, zurückgegeben jedoch soll nur ein stream werden, der dann z.B. vom IE verarbeitet wird.

Etwa so:
pcat://undhierdieparas

die Anwedung öffnet nun eine Datenbank, holt Daten und sendet sie dann zurück. z.B. IE