AcManager.Tools.Helpers.CustomUriSchemeHelper.RegisterClass C# (CSharp) Method

RegisterClass() private static method

private static RegisterClass ( string className, string title, bool urlProtocol, int iconId ) : void
className string
title string
urlProtocol bool
iconId int
return void
        private static void RegisterClass(string className, string title, bool urlProtocol, int iconId) {
            using (var key = Registry.CurrentUser.CreateSubKey($@"Software\Classes\{className}", RegistryKeyPermissionCheck.ReadWriteSubTree)) {
                if (key == null) return;

                if (urlProtocol) {
                    key.SetValue("URL Protocol", "", RegistryValueKind.String);
                }

                key.SetValue("", title, RegistryValueKind.String);

                using (var iconKey = key.CreateSubKey(@"DefaultIcon", RegistryKeyPermissionCheck.ReadWriteSubTree)) {
                    iconKey?.SetValue("", $@"{MainExecutingFile.Location},{iconId}", RegistryValueKind.String);
                }

                using (var commandKey = key.CreateSubKey(@"shell\open\command", RegistryKeyPermissionCheck.ReadWriteSubTree)) {
                    commandKey?.SetValue("", $@"{MainExecutingFile.Location} ""%1""", RegistryValueKind.String);
                }
            }
        }