Originariamente inviato da binos1979
il problema è questo ma anche io vorrei farlo da codice
Devi importare Microsoft.Win32, necessario per la modifica del registro di sistema. Poi devi usare il tipo RegistryKey e anche Registry, ad esempio nel tuo caso:
codice:
    Public Sub Assoociate()
        'Variabile di tipo RegistryKey
        Dim RegKey As RegistryKey

        'Crei una nuova chiave in HKEY_CLASSES_ROOT con la tua estensione .xyz
        RegKey = Registry.ClassesRoot.CreateSubKey(".xyz")
        'Crei il valore (Predefinito) nella chiave e ci scrivi il nome che hai scelto
        RegKey.SetValue("(Predefinito)", "extxyz")
        'Crei un'altra chiave col nome che hai scelto
        RegKey = Registry.ClassesRoot.CreateSubKey("extxyz")
        'Crei la sottochiave shell (trascurando un attimo defaulticon) e la sottochiave Open, child di shell
        RegKey = RegKey.CreateSubKey("shell").CreateSubKey("open")
        'Crei il valore (Predefinito) in cui metti il comando da eseguire
        RegKey.SetValue("(Predefinito)", Application.ExecutablePath + "%1")
        'Fatto
    End Sub