Diese Class gibt mir zur Dateiendung einen Kontektmenüeintrag, aber das zugeordnette Programm startet nicht. wo liegt der Fehler leider sind die Keys so dermassen zerstreut das ich das nicht raffe.
Imports System
Imports Microsoft.Win32
Public Class DateiEndung
Sub New()
Dim Verb As String = "Open"
Dim IDString As String = "txtxtxtx"
SetFileType(".txtx", IDString)
SetFileDescription(IDString, "DateiTypeBeschreibung")
AddAction(IDString, Verb, "öffne Datei")
SetExtensionCommandLine(Verb, IDString, Chr(34) & _
"%SystemRoot%\system32\notepad.exe" & Chr(34) & " " & Chr(34) & "%1" _
& Chr(34), "Name")
SetDefaultAction(IDString, Verb)
SetDefaultIcon(IDString, "%SystemRoot%\system32\notepad.exe,1")
End Sub
Public Sub SetFileType(ByVal extension As String, ByVal FileType As String)
Dim rk As RegistryKey = Registry.ClassesRoot
Dim ext As RegistryKey = rk.CreateSubKey(extension)
ext.SetValue("", FileType)
End Sub
Public Sub SetFileDescription(ByVal FileType As String, ByVal Description _
As String)
Dim rk As RegistryKey = Registry.ClassesRoot
Dim ext As RegistryKey = rk.CreateSubKey(FileType)
ext.SetValue("", Description)
End Sub
Public Sub AddAction(ByVal FileType As String, ByVal Verb As String, ByVal _
ActionDescription As String)
Dim rk As RegistryKey = Registry.ClassesRoot
Dim ext As RegistryKey = rk.OpenSubKey(FileType, True).CreateSubKey( _
"Shell").CreateSubKey(Verb)
ext.SetValue("", ActionDescription)
End Sub
Public Sub SetExtensionCommandLine(ByVal Command As String, ByVal FileType _
As String, ByVal CommandLine As String, Optional ByVal Name As String = _
"")
Dim rk As RegistryKey = Registry.ClassesRoot
Dim ext As RegistryKey = rk.OpenSubKey(FileType).OpenSubKey( _
"Shell").OpenSubKey(Command, True).CreateSubKey("Command")
ext.SetValue(Name, CommandLine)
End Sub
Public Sub SetDefaultAction(ByVal FileType As String, ByVal Verb As String)
Dim rk As RegistryKey = Registry.ClassesRoot
Dim ext As RegistryKey = rk.OpenSubKey(FileType).OpenSubKey("Shell", _
True)
ext.SetValue("", Verb)
End Sub
Public Sub SetDefaultIcon(ByVal FileType As String, ByVal Icon As String)
Dim rk As RegistryKey = Registry.ClassesRoot
Dim ext As RegistryKey = rk.OpenSubKey(FileType, True)
ext.SetValue("DefaultIcon", Icon)
End Sub
End Classgefunden bei http://vbcity.com/forums/topic.asp?tid=72502 ,dort hab ich aber kein login, deshalb hier die Frage.
MFG ....
Wenn es das Forum nicht g?b, ich glaub ich h?tte meine Fragen in gro?en Buchstaben in den Sand geschrieben.
Hoffentlich kommt ein Schiff und Jemand kennt eine passende Antwort darauf... |