Dateityp für eigene Anwendung registrieren - icon kaputt ;)

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von KnifeHunter.

    Dateityp für eigene Anwendung registrieren - icon kaputt ;)

    So hallo an alle,

    nachdem ich leider lange nichtmehr da war, da bei mir irgendwie mein i-net nicht mitgemacht hat, habe ich mal wieder eine frage... mittlerweile bin ich schon recht gut was programmieren angeht. aber die MS Regisry habe ich bis heute leider nicht verstanden.
    ich habe mir den code aus folgendem Thread gezogen Thread.

    den code etc. habe ich soweit ja verstanden.
    naja... was die genauen einträge betrifft bin ich noch nicht ganz schlüssig.

    jedenfalls klappt das alles wunderbar, datei wird registriert und bei einem doppelklick wird selbige auch mit dem gewünschen programm gestartet.

    das einzige was mich stutzig macht, ist das jeglicher versuch der dateiendung ein Icon zu verpassen, kläglich gescheitert ist.


    ich hoffe, dass ihr mir da evtl weiterhelfen könnt.


    hier nochmal mein code:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    3. End Sub
    4. Private Function Registerfile(ByVal endung As String, ByVal namedesdateityps As String, ByVal pfadzuprogramm As String, ByVal pfadzuicon As String) As Boolean
    5. 'Try
    6. Dim objSubKey As Microsoft.Win32.RegistryKey
    7. Dim objSubKey2 As Microsoft.Win32.RegistryKey
    8. Dim Wert As String = namedesdateityps
    9. Dim sKey As String = endung
    10. Dim sKey2 As String = endung & "\ShellNew"
    11. Dim sEntry As String = "Content Type"
    12. Dim sValue As String = "text/plain"
    13. Dim sEntry2 As String = "PerceivedType"
    14. Dim sValue2 As String = "text"
    15. Dim sEntry3 As String = "Nullfile"
    16. objSubKey = My.Computer.Registry.ClassesRoot.CreateSubKey(sKey)
    17. objSubKey.SetValue("", Wert)
    18. objSubKey.SetValue(sEntry, sValue)
    19. objSubKey.SetValue(sEntry2, sValue2)
    20. objSubKey2 = My.Computer.Registry.ClassesRoot.CreateSubKey(sKey2)
    21. objSubKey2.SetValue(sEntry3, "")
    22. Dim objSubKey3 As Microsoft.Win32.RegistryKey
    23. Dim sKey3 As String = namedesdateityps
    24. Dim sKey4 As String = namedesdateityps & "\shell\open\command"
    25. Dim skey5 As String = namedesdateityps & "\DefaultIcon"
    26. Dim sValue3 As String = namedesdateityps
    27. Dim objSubKey5 As Microsoft.Win32.RegistryKey
    28. Dim sValue5 As String = """" + pfadzuprogramm + """" + " %1"
    29. Dim sValue6 As String = """" + pfadzuicon + """"
    30. Dim objSubKey4 As Microsoft.Win32.RegistryKey
    31. objSubKey3 = My.Computer.Registry.ClassesRoot.CreateSubKey(sKey3)
    32. objSubKey3.SetValue("", sValue3)
    33. objSubKey4 = My.Computer.Registry.ClassesRoot.CreateSubKey(sKey4)
    34. objSubKey4.SetValue("", sValue5)
    35. objSubKey5 = My.Computer.Registry.ClassesRoot.CreateSubKey(skey5)
    36. objSubKey5.SetValue("", sValue6)
    37. Return True
    38. 'Catch ex As Exception
    39. 'Return False
    40. 'End Try
    41. End Function
    42. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    43. If Registerfile(".test", "Test-File-Extension", Application.ExecutablePath, "C:\Users\EsTari\Documents\Visual Studio 2010\Projects\FILE REGISTRATION TEST\FILE REGISTRATION TEST\bin\Debug\Bio Hazard.ico") = True Then
    44. MessageBox.Show("Die Dateiendung *.test wurde erfolgreich registiert.", "Info")
    45. Else
    46. MessageBox.Show("Die Dateiendung konnte nicht registriert werden.")
    47. End If
    48. End Sub
    49. End Class


    8| ?(


    Danke schonmal an alle, die sich für mich den kopf zerbrechen ^^
    Warum ist denn Try auskommentiert ? Wurden etwa offensichtliche Fehler gemeldet ?
    Dann geb doch Adminrechte. Try Except ist zwar nicht gut aber in diesem Fall gut um den Fehler zu finden.
    ist doch erledigt... es geht jetzt nur noch um das icon!!!

    wie schon gesagt: der code läuft fehlerfrei. also muss ja irgendwas an den einträgen falsch sein.
    da ich mich damit leider nicht auskenne, wäre es nett, wenn jemand der ahnung hat, den code anschauen würde und mir evtl. sagen könnte, warum die datei zwar registriert wird aber eben ohne icon?!...



    EDIT: Hat sich erledigt... danke. das Icon war nach dem PC-neustart dann da. stand leider im anderen Thread nicht dabei, dass das Icon erst nach dem Computerneustart angezeigt wird.

    MfG KnifeHunter

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „KnifeHunter“ ()