Em HKCR, qual é a diferença entre Diretório e Pasta na configuração do menu de contexto

5

Continuando essa questão em SO ( Como abro a janela do cmd em um local específico? ) Estou procurando uma maneira eficaz de adicionar o atalho Abrir prompt de comando aqui a um menu de contexto. Várias soluções propõem adicionar entradas ao HKCR \ Folder e outras sugerem adicionar entradas ao HKCR \ Directory.

Com base nesta pergunta ( Directory Vs. Folder ) parece que uma pasta pode ser virtual ou não enquanto um diretório é sempre "real". Um diagrama terá pasta sendo um grande círculo e diretório um círculo menor completamente fechado dentro do círculo da pasta.

Por causa de um prompt de comando, é correto supor que provavelmente estarei lidando apenas com pastas ou diretórios "reais"?

As perguntas são as seguintes: Posso abrir uma janela de prompt de comando em um diretório virtual e que razão concebível eu teria para fazer isso? Adicionando um item de menu de contexto apenas para HKCR \ Folder cobrir todas as minhas bases e, em seguida, alguns? A adição de um item de menu de contexto SOMENTE ao HKCR \ Directory acabaria perdendo algumas coisas?

Finalmente, para pontos de brownie: E se eu quisesse adicionar uma entrada para abrir um prompt de comando clicando dentro de uma pasta em vez de em um ícone de pasta, qual item de menu de contexto eu teria que usar para obter essa função?

    
por music2myear 14.07.2011 / 23:26

2 respostas

3

A melhor maneira que fiz foi adicionar o prompt de comando Abrir para todos os objetos . O prompt de comando aberto passa o diretório de trabalho (cmd / k pushd% d ") e você obtém o prompt de comando no diretório de trabalho do objeto que você clicou com o botão direito.

Na maior parte, você pode abrir um prompt de comando em uma pasta virtual. Depende embora. Por exemplo, as pastas DFS retornam um prompt de comando em um UNC. Mas tentar obter um prompt de comando em um objeto em uma pasta de pesquisa apenas mostra a localização real do objeto.

Editar:

Para obter o prompt de comando quando você clica com o botão direito no plano de fundo, é necessário gravar uma extensão do shell. E como as extensões de shell do Microsoft insists são escritas em código nativo! Me :( Consulte o MSDN no menu de extensões do shell.

link

Ou você pode fazer o download deste programa: Extensão do Shell do Console de Contexto.

link

    
por 15.07.2011 / 06:25
1

Para sua pergunta de bônus: Não há nenhuma chave de registro que você possa modificar para fazer o que você quer. Instale o ContextConsole para obter essa funcionalidade. Uma extensão de shell é necessária nesta instância porque quando você clica no plano de fundo de uma pasta, você não tem nenhum objeto selecionado.

Para as suas outras perguntas: Você pode CD para uma pasta virtual no Prompt de Comando se ele for feito por uma pasta real no sistema de arquivos (por exemplo, Fonts ou Start Menu ). Pastas puramente virtuais (por exemplo, Control Panel ) não têm caminho para o sistema de arquivos, portanto não há um CD para ele.

O PowerShell oferece suporte a extensões de namespace e permite fazer coisas como definir sua localização para um caminho de registro:

PS C:\> Set-Location HKLM:\Software\Classes\Directory
PS HKLM:\Software\Classes\Directory> Get-ChildItem


    Hive: HKEY_LOCAL_MACHINE\Software\Classes\Directory


SKC  VC Name                           Property
---  -- ----                           --------
  2   0 Background                     {}
  0   1 DefaultIcon                    {(default)}
  2   1 shell                          {(default)}
  4   0 shellex                        {}

Se você quiser adicionar chaves reg a HKCR\Directory , adicione-as a HKCR\Drive também se precisar que elas apareçam, também tem a pasta raiz da unidade.

    
por 15.07.2011 / 00:13