internal static void Delete(RegistryBaseMenuItem item) { using (var itemKey = item.RegistryMainKey.OpenSubKey(item.RegistryPath, false)) { if (itemKey != null) { item.RegistryMainKey.DeleteSubKeyTree(item.RegistryPath); } } }
private static void ProcessarComando(ArgsItem item) { RegistryBaseMenuItem instance = (RegistryBaseMenuItem)Activator.CreateInstance(item.ClassType); instance.Execute(item.Parametro); return; // Arquivo, Prompt aqui if (item.TipoComando == TipoComandoEnum.ArquivoPromptAqui) { Process.Start("cmd.exe", "/k"); return; } // Arquivo, runas, Prompt aqui else if (item.TipoComando == TipoComandoEnum.ArquivoRunasPromptAqui) { string parametros = string.Format("/s /k pushd \"{0}\"", Path.GetDirectoryName(item.Parametro)); Process.Start("cmd.exe", parametros); return; } Trace.WriteLine("Tipo de comando: " + item.Parametro); string strToClipboard = item.Parametro; try { //if (tipoComando == TipoComandoEnum.ArquivoCopiarNomeArquivo || tipoComando == TipoComandoEnum.DiretorioCopiarNomePasta) //{ // var lst = GetItensSelecionadosExplorer(tipoComando); // Trace.WriteLine("Você tem selecionado:"); // Trace.Write(string.Join("; ", lst)); // Trace.WriteLine(new string('-', 50)); // strToClipboard = string.Join(Environment.NewLine, lst); //} } catch (Exception ex) { Trace.WriteLine("Não consegui saber os arquivos selecionados: " + ex.Message); } try { Clipboard.SetText(strToClipboard, TextDataFormat.Text); } catch (Exception ex) { Trace.WriteLine(ex.ToString()); } }
private void CriarMenus() { // Menu em Directory _menuWSPackDirectory = new DirectoryMenuWSPackItem(); RegistryUtils.AddOrUpdate(_menuWSPackDirectory); // Menu em DirectoryBackground _menuWSPackDirectoryBackground = new DirectoryBackgroundWSPackMenuItem(); RegistryUtils.AddOrUpdate(_menuWSPackDirectoryBackground); // Menu em arquivos _menuWSPackArquivos = new ArquivoWSPackMenuItem(); RegistryUtils.AddOrUpdate(_menuWSPackArquivos); }
/// <summary> /// Cria uma instância da classe <seealso cref="GridItem" /></summary> /// <param name="menuType">Tipo de menu</param> /// <param name="menuItem">Item de registro</param> /// <param name="isFixed">Indica se o item é fixo</param> public GridItem(MenuTypeEnum menuType, RegistryBaseMenuItem menuItem, bool isFixed = false) { MenuType = menuType; MenuItem = menuItem; IsFixed = isFixed; }
internal static void AddOrUpdate(RegistryBaseMenuItem item) { using (RegistryKey mainKey = item.RegistryMainKey.CreateSubKey(item.RegistryPath, RegistryKeyPermissionCheck.ReadWriteSubTree)) { // Caption mainKey.SetValue(nameof(item.MUIVerb), item.MUIVerb, RegistryValueKind.String); // Ícone mainKey.SetValue(nameof(item.Icon), item.Icon, RegistryValueKind.String); // Ícone com privilégios if (item.HasLUAShield && !string.IsNullOrEmpty(item.Icon)) { mainKey.SetValue(nameof(item.HasLUAShield), string.Empty, RegistryValueKind.String); } else { mainKey.DeleteValue(nameof(item.HasLUAShield), false); } // CommandFlags if (item.CommandFlags != null) { mainKey.SetValue(nameof(item.CommandFlags), item.CommandFlags, RegistryValueKind.DWord); } else { mainKey.DeleteValue(nameof(item.CommandFlags), false); } // MultiSelectModel if (!string.IsNullOrEmpty(item.MultiSelectModel)) { mainKey.SetValue(nameof(item.MultiSelectModel), item.MultiSelectModel, RegistryValueKind.String); } else { mainKey.DeleteValue(nameof(item.MultiSelectModel), false); } // Sub-comandos mainKey.SetValue(nameof(item.ExtendedSubCommandsKey), item.ExtendedSubCommandsKey, RegistryValueKind.String); // Posição if (item.Position != RegistryPositionEnum.Default) { mainKey.SetValue(nameof(item.Position), item.Position.ToString(), RegistryValueKind.String); } else { mainKey.DeleteValue(nameof(item.Position), false); } // Comando if (!string.IsNullOrEmpty(item.Command)) { using (var chaveComando = mainKey.CreateSubKey(nameof(item.Command), RegistryKeyPermissionCheck.ReadWriteSubTree)) { chaveComando.SetValue(null, item.Command, RegistryValueKind.String); } } else { mainKey.DeleteSubKey(nameof(item.Command), false); } } }
private static void ProcessarComando(ArgsItem item) { RegistryBaseMenuItem instance = (RegistryBaseMenuItem)Activator.CreateInstance(item.ClassType); instance.Execute(item.Parametro); }