Merge pull request #8876 from ivandrofly/association-delete

Delete associated registry value when removing file association
This commit is contained in:
Nikolaj Olsson 2024-10-03 17:07:30 +02:00 committed by GitHub
commit 0accb7ccdc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -97,13 +97,25 @@ namespace Nikse.SubtitleEdit.Logic
internal static void DeleteFileAssociationViaRegistry(string ext, string appName) internal static void DeleteFileAssociationViaRegistry(string ext, string appName)
{ {
var appExtensionRegKey = $"{appName}{ext}";
using (var registryKey = Registry.CurrentUser.OpenSubKey(@"Software\Classes\", true)) using (var registryKey = Registry.CurrentUser.OpenSubKey(@"Software\Classes\", true))
{ {
if (registryKey?.OpenSubKey($"{appName}{ext}") != null) if (registryKey?.OpenSubKey(appExtensionRegKey) != null)
{ {
registryKey.DeleteSubKeyTree($"{appName}{ext}"); registryKey.DeleteSubKeyTree($"{appName}{ext}");
} }
} }
// (Default)
const string defaultRegValueName = "";
using (var registryKey = Registry.CurrentUser.OpenSubKey("Software\\Classes\\" + ext, true))
{
var registryValue = registryKey?.GetValue(defaultRegValueName);
if (appExtensionRegKey.Equals((string)registryValue, StringComparison.Ordinal))
{
registryKey.DeleteValue(defaultRegValueName);
}
}
} }
internal static void Refresh() internal static void Refresh()
@ -112,4 +124,4 @@ namespace Nikse.SubtitleEdit.Logic
SHChangeNotify(0x08000000, 0x2000, IntPtr.Zero, IntPtr.Zero); SHChangeNotify(0x08000000, 0x2000, IntPtr.Zero, IntPtr.Zero);
} }
} }
} }