diff --git a/Wabbajack.Common/ExtensionManager.cs b/Wabbajack.Common/ExtensionManager.cs index 98aeb8c9..76afdd6d 100644 --- a/Wabbajack.Common/ExtensionManager.cs +++ b/Wabbajack.Common/ExtensionManager.cs @@ -28,6 +28,14 @@ namespace Wabbajack.Common {"PerceivedType", "Compressed"} }; + public static bool NeedsUpdating(string appPath) + { + var progIDKey = Registry.CurrentUser.OpenSubKey(ProgIDPath); + var tempKey = progIDKey?.OpenSubKey("shell\\open\\command"); + if (progIDKey == null || tempKey == null) return true; + return tempKey.GetValue("").ToString().Equals($"\"{appPath}\" -i \"%1\""); + } + public static bool IsAssociated(string appPath) { var progIDKey = Registry.CurrentUser.OpenSubKey(ProgIDPath); diff --git a/Wabbajack/AppState.cs b/Wabbajack/AppState.cs index bf7c649a..fcc8f9ba 100644 --- a/Wabbajack/AppState.cs +++ b/Wabbajack/AppState.cs @@ -86,17 +86,7 @@ namespace Wabbajack } var appPath = Assembly.GetExecutingAssembly().Location; - var iconPath = Path.Combine(Path.GetDirectoryName(appPath), "wabbajack.ico"); - if(!File.Exists(iconPath)) - { - using (var s = Utils.GetResourceStream("Wabbajack.UI.Icons.icon-embedded.ico")) - using (var fs = new FileStream(iconPath, FileMode.Create)) - { - s.CopyTo(fs); - } - } - - if (!ExtensionManager.IsAssociated(appPath)) + if (!(ExtensionManager.IsAssociated(appPath) || ExtensionManager.NeedsUpdating(appPath))) { ExtensionManager.Associate(appPath); }