eigene Dateiendung

  • VB.NET

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von Alteran.

    eigene Dateiendung

    Ich würde gerne ein Programm mit einer eigenen Dateiendung machen. Hier im Forum habe ich einen Code gefunden, der einen Fehler ausgibt. Aber warum?

    Hier die Anleitung:
    1. Du fügst in den Projekteigenschaften unter "Einstellungen" eine neue hinzu: Name "registered", Typ Boolean, Wert "False".
    2. Folgender Code in Form_Load, du musst ihn noch anpassen, ich habe jetzt als Beispiel die Endung ".setxt" registrieren lassen, ".setxt" steht für "Easytext-Datei".

    Hier der Code:

    VB.NET-Quellcode

    1. If My.Settings.registered = False Then
    2. Dim objSubKey As Microsoft.Win32.RegistryKey
    3. Dim objSubKey2 As Microsoft.Win32.RegistryKey
    4. Dim Wert As String = "Easytext-Datei" ' Einfach für dich anpassen
    5. Dim sKey As String = ".setxt" ' Deine Dateiendung
    6. Dim sKey2 As String = ".setxt\ShellNew" ' Deine Dateieindung und "\ShellNew"
    7. Dim sEntry As String = "Content Type" ' Das muss so bleiben
    8. Dim sValue As String = "text/plain" ' Das auch
    9. Dim sEntry2 As String = "PerceivedType" ' Das auch
    10. Dim sValue2 As String = "text" ' Das auch
    11. Dim sEntry3 As String = "Nullfile" ' Das auch
    12. [color=#ff0000]objSubKey = My.Computer.Registry.ClassesRoot.CreateSubKey(sKey) ' Das alles so lassen[/color]
    13. objSubKey.SetValue("", Wert)
    14. objSubKey.SetValue(sEntry, sValue)
    15. objSubKey.SetValue(sEntry2, sValue2)
    16. objSubKey2 = My.Computer.Registry.ClassesRoot.CreateSubKey(sKey2)
    17. objSubKey2.SetValue(sEntry3, "")
    18. Dim objSubKey3 As Microsoft.Win32.RegistryKey
    19. Dim sKey3 As String = "Easytext-Datei" ' Nochmal wiederholen (das was du auch bei Value angegeben hast)
    20. Dim sKey4 As String = "Easytext-Datei\shell\open\command" ' Nochmal wiederholen und "\shell\open\command lassen
    21. Dim skey5 As String = "Easytext-Datei\DefaultIcon" ' "\DefaultIcon auch so lassen
    22. Dim sValue3 As String = "Easytext-Datei" ' Nochmal wiederholen ;)
    23. Dim objSubKey5 As Microsoft.Win32.RegistryKey
    24. Dim sValue5 As String = """" + My.Application.Info.DirectoryPath + "\EasyText.exe" + """" + " %1" ' Den Namen deiner Exe eintragen
    25. Dim sValue6 As String = """" + My.Application.Info.DirectoryPath + "\icon.ico" + """" ' jetzt musst du einen Icon erstellen, ihn in "icon.ico" umbennen und ihn in den selben Ordner wie die Exe packen
    26. Dim objSubKey4 As Microsoft.Win32.RegistryKey ' Das alles so lassen
    27. objSubKey3 = My.Computer.Registry.ClassesRoot.CreateSubKey(sKey3) ' Das auch
    28. objSubKey3.SetValue("", sValue3)
    29. objSubKey4 = My.Computer.Registry.ClassesRoot.CreateSubKey(sKey4)
    30. objSubKey4.SetValue("", sValue5)
    31. objSubKey5 = My.Computer.Registry.ClassesRoot.CreateSubKey(skey5)
    32. objSubKey5.SetValue("", sValue6)
    33. My.Settings.registered = True
    34. My.Settings.Save()
    35. Else
    36. Try
    37. If My.Application.CommandLineArgs.Count > 0 Then
    38. Dim s As String = Environment.CommandLine
    39. ' s enthält jetzt 2 Pfade: Der Pfad der Datei, die geöffnet wurde und den Pfad zu deiner Exe. Du kannst das ganze mit Split trennen und schon hast du´s.
    40. End If
    41. Catch
    42. MessageBox.Show(Err.Description, "Fehler")
    43. End Try
    44. End If
    45. End Sub


    Der Zugriff auf Registrierungsschlüssel HKEY_CLASSES_ROOT\setxt wurde verweigert

    Habe alles so gemacht wie angegeben...
    Joa, stimmt. Aber es geht ja, dass ein Programm sich automatisch die Adminrechte hohlt, der User muss nur noch bestätigen. Such mal danach. Ich hab keine Ahnung, wie das geht, du kannst aber deine Resultate hier posten, dann hilfst du eventuell auch anderen :)
    nur noch maL kurz darauf zurück:
    hahaha -.- xD
    das is jah auch ned unser beruf oder?
    zumindest meiner ned
    und wer weiß wieviele das geproggt ham.
    wahrscheinlich mehr, als in diesem Forum angemeldet sind


    Das muss man sich wirklich mal auf der Zunge zergehn lassen ^^

    Sand schrieb:


    nur noch maL kurz darauf zurück:
    hahaha -.- xD
    das is jah auch ned unser beruf oder?
    zumindest meiner ned
    und wer weiß wieviele das geproggt ham.
    wahrscheinlich mehr, als in diesem Forum angemeldet sind


    Das muss man sich wirklich mal auf der Zunge zergehn lassen ^^
    was denn? xD
    is ja so