public static void RegisterURIActivationProtocol() { try { if (!RegistryHelpers.KeyExists(SoftwareClassesRegistryPathPrefx + ActivationProtocolHandler.URIProtocolActivationHeader)) { using (var key = Registry.CurrentUser.CreateSubKey(SoftwareClassesRegistryPathPrefx + ActivationProtocolHandler.URIProtocolActivationHeader)) { string applicationLocation = typeof(App).Assembly.Location; key.SetValue("", "URL:Mix It Up"); key.SetValue("URL Protocol", ""); using (var defaultIcon = key.CreateSubKey("DefaultIcon")) { defaultIcon.SetValue("", $"{applicationLocation},0"); } using (var commandKey = key.CreateSubKey(@"shell\open\command")) { commandKey.SetValue("", "\"" + applicationLocation + "\" \"%1\""); } } } } catch (Exception ex) { Logger.Log(ex); } }
public static void RegisterFileAssociation() { try { if (!RegistryHelpers.KeyExists(SoftwareClassesRegistryPathPrefx + CommandEditorWindowViewModelBase.MixItUpCommandFileExtension)) { using (var key = Registry.CurrentUser.CreateSubKey(SoftwareClassesRegistryPathPrefx + ActivationProtocolHandler.FileAssociationProgramID)) { string applicationLocation = typeof(App).Assembly.Location; key.SetValue("", "Mix It Up"); using (var currentVersion = key.CreateSubKey("CurVer")) { currentVersion.SetValue("", ActivationProtocolHandler.FileAssociationProgramID); } using (var defaultIcon = key.CreateSubKey("DefaultIcon")) { defaultIcon.SetValue("", $"{applicationLocation},0"); } using (var commandKey = key.CreateSubKey(@"shell\open\command")) { commandKey.SetValue("", "\"" + applicationLocation + "\" \"%1\""); } } using (var key = Registry.CurrentUser.CreateSubKey(SoftwareClassesRegistryPathPrefx + CommandEditorWindowViewModelBase.MixItUpCommandFileExtension)) { key.SetValue("", ActivationProtocolHandler.FileAssociationProgramID); } SHChangeNotify((int)SHCNE_ASSOCCHANGED, (int)SHCNF_IDLIST, IntPtr.Zero, IntPtr.Zero); } } catch (Exception ex) { Logger.Log(ex); } }