Die Community zu .NET und Classic VB.
Menü

VB.NET-Tipp 0051: Anwendung mit Dateiendung assoziieren

 von 

Beschreibung

Mit dem untenstehenden Listing ist es möglich Dateiendungen mit einer Anwendung in Zusammenhang zubringen. Es wird ein neuer Schlüssel in die Registry eingetragen, so dass beim Anklicken einer Datei mit der entsprechenden Endung die zugehörige Applikation gestartet wird.

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-Version(en):

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

Download:

Download des Beispielprojektes [4,74 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.Drawing
'  - System.Windows.Forms
'  - System.XML
'
' Imports: 
'  - Microsoft.VisualBasic
'  - System
'  - System.Collections
'  - System.Data
'  - System.Drawing
'  - System.Diagnostics
'  - System.Windows.Forms
'

' ##############################################################################
' ################################# Form1.vb ###################################
' ##############################################################################
Public Class Form1
    Inherits System.Windows.Forms.Form


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

        Dim Subkey As Microsoft.Win32.RegistryKey

        ' Erstellt einen Schlüssel mit dem angegebenen(Registrynamen)
        Dim Key As Microsoft.Win32.RegistryKey = _
            Microsoft.Win32.Registry.ClassesRoot.CreateSubKey(TextBox3.Text)

        ' Setzt den Standardwert des Schlüssels aufden Namen der Erweiterung
        Key.SetValue(Nothing, TextBox1.Text)

        ' Wenn Pfad und Nummer des Icons gesetzt sind
        If TextBox4.Text <> "" And TextBox5.Text <> "" Then
            'Erstellt einen Unterschlüssel für das Icon
            Subkey = Key.CreateSubKey("DefaultIcon")

            ' Setzt den Standardwert des Unterschlüssels auf den Pfad und die 
            '  Nummer des Icons
            Subkey.SetValue(Nothing, TextBox4.Text + "," + TextBox5.Text)
        End If

        ' Erstellt einen Unterschlüssel für das ausführbare Programm
        Subkey = Key.CreateSubKey("shell\open\command")

        ' Setzt den Standardwert des Schlüssels auf den Pfad zum 
        '  ausführbaren(Programm)
        Subkey.SetValue(Nothing, TextBox2.Text)

        ' Erstellt einen Schlüssel mit der angegebenen(Dateierweiterung)
        Key = Microsoft.Win32.Registry.ClassesRoot.CreateSubKey( _
            "." + TextBox6.Text)

        ' Setzt den Standardwert des Schlüssels auf den Namen der Erweiterung
        Key.SetValue(Nothing, TextBox3.Text)

        Button1.Enabled = True
    End Sub

    Private Sub Form1_Load(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles MyBase.Load

        Label1.Text = "Anwendungsname:"
        Label2.Text = "Anwendungspfad:"
        Label3.Text = "Registryname:"
        Label4.Text = "Icon - Datei:"
        Label5.Text = "Icon - Nummer:"
        Label6.Text = "Extension"
        TextBox1.Text = "Selbstgebastelte Text-Editor Datei"
        TextBox2.Text = "C:\Windows\Notepad.exe"
        TextBox3.Text = "Sg TextEdit Dat"
        TextBox4.Text = "C:\Windows\Explorer.exe"
        TextBox5.Text = "15"
        TextBox6.Text = "sgte"
    End Sub

    Private Sub Button2_Click(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles Button2.Click

        Application.Exit()
    End Sub
End Class

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 3 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 Alexander Wirt am 14.07.2011 um 20:27

z.B: so bekommt man der Pfad in der Titelleiste->


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If My.Application.CommandLineArgs.Count > 0 Then
Me.Text = My.Application.CommandLineArgs(0)
End If
End Sub

Kommentar von Lord Jayson am 23.12.2009 um 00:29

Hey,
ich habe nun die Dateiendung .txt mit meinem Writer verbunden. Wie bekomme ich es nun hin, dass er diese einliest und in einer Textbox darstellt ??

Liebe Grüße,
Lord Jayson

Kommentar von General Bison am 15.09.2008 um 11:40

Hi
als erstes mal GENAIL! das hab ich schon immer gesucht!
Echt NICE!

aber.. öhm...
Wie bekomme ich in der Anwendung nachher die Übergebene(n)
Dateien raus?

Es geht weder mit
System.Environment.GetCommandLineArgs
noch mit
My.Application.CommandLineArgs

wie greife ich darauf zu?

MFG: BiSoN