Вот один из способов (в VB), как это сделать.ApplicationTag - это короткое имя для реестра, например editor3.1
.Вы можете проверить реестр с помощью regedit, чтобы увидеть, что происходит, и вы можете создать точку восстановления, прежде чем тестировать эту часть своего приложения.
Imports Microsoft.Win32
...
Registry.SetValue("HKEY_CURRENT_USER\software\classes\" & FileType, "", applicationTag)
q = Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\" & FileType, True)
If q IsNot Nothing AndAlso q.GetValue("ProgID", "notfound") <> "notfound" Then
q.SetValue("ProgID", appTag) ' for the local user, overrides hkcr
End If
appKey = "HKEY_CURRENT_USER\software\classes\" & applicationTag
Registry.SetValue(appKey, "", "text")
Registry.SetValue(appKey & "\shell", "", "open")
Registry.SetValue(appKey & "\shell\open", "", "")
Registry.SetValue(appKey & "\shell\open\command", "", """" & ApplicationPath & """ ""%1""")
Registry.SetValue(appKey, "", "text")
appKey = "HKEY_CURRENT_USER\software\classes\CLSID\" & ApplicationGuid
Registry.SetValue(appKey, "", applicationTitle)
Registry.SetValue(appKey & "\ProgID", "", applicationTag)