private static void RegisterExtension(string ext, string description) {
var className = $@"{ClassName}{ext.ToLowerInvariant()}";
RegisterClass(className, description, false, 1);
using (var key = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\" + ext,
RegistryKeyPermissionCheck.ReadWriteSubTree)) {
if (key == null) return;
using (var progIds = key.CreateSubKey(@"OpenWithProgids", RegistryKeyPermissionCheck.ReadWriteSubTree)) {
progIds?.SetValue(className, new byte[0], RegistryValueKind.None);
}
try {
using (var choiceKey = key.CreateSubKey(@"UserChoice", RegistryKeyPermissionCheck.ReadWriteSubTree)) {
choiceKey?.SetValue("Progid", className, RegistryValueKind.String);
}
} catch (Exception) {
// ignored
}
}
}