Esempio n. 1
0
 internal static void Delete(RegistryBaseMenuItem item)
 {
     using (var itemKey = item.RegistryMainKey.OpenSubKey(item.RegistryPath, false))
     {
         if (itemKey != null)
         {
             item.RegistryMainKey.DeleteSubKeyTree(item.RegistryPath);
         }
     }
 }
Esempio n. 2
0
        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());
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 /// <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;
 }
Esempio n. 5
0
        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);
                }
            }
        }
Esempio n. 6
0
        private static void ProcessarComando(ArgsItem item)
        {
            RegistryBaseMenuItem instance = (RegistryBaseMenuItem)Activator.CreateInstance(item.ClassType);

            instance.Execute(item.Parametro);
        }