A grande questão: isso é seguro?

A grande questão: isso é seguro?

Existe uma maneira de definir outro programa como programa padrão que abre ao abrir uma pasta ou "Meu Computador"? Gostaria de substituir o Windows Explorer por outro programa, por exemplo, FreeCommander. Tentei procurar associações de programas nas opções do painel de controle, mas não consegui encontrar uma opção para abrir pastas.

Presumo que exista algum regex em algum lugar que possa fazer isso, mas não vou pesquisar manualmente.

Responder1

Em geral, a pergunta do PHOENiX está certa, mas há um problema com ela. A chave de registro HKEY_CLASSES_ROOT\Folderabrange não apenas diretórios, mas também várias pastas especiais, como por exemplo itens noPainel de controle, etc. São aquelas strings GUID sobre as quais PHOENiX está escrevendo. Se você tentar abrir uma pasta especial em um gerenciador de arquivos de terceiros, provavelmente falhará e você não poderá mais usar essas pastas.

O que você realmente quer é configurar apenasdiretórioseunidadespara ser aberto em seu gerenciador de arquivos. Existem duas chaves de registro para isso:

  • HKEY_CLASSES_ROOT\Directory
  • HKEY_CLASSES_ROOT\Drive

Aqui estão dois exemplos de como definir o Total Commander como gerenciador de arquivos padrão. Ambos fazem com que qualquer diretório ou unidade seja aberto em uma nova guia no Total Commander quando clicado (por exemplo, no menu Iniciar), clicado duas vezes (por exemplo, na área de trabalho, no Windows File Explorer, etc.), aberto em outro aplicativo, etc. A única diferença é que o primeiro está usando oAbriritem no menu de contexto do diretório/unidade e o segundo está adicionando um novo itemAbrir no Total Commandercom o ícone do Total Commander para o menu de contexto.

Basta copiar e colar o conteúdo abaixo em um novo arquivo, atribuir a .regextensão e executá-lo. Claro, você precisa ter certeza de que possui o caminho correto para o executável do Total Commander.

Verifica adocumentaçãopara mais detalhes.

1. Use o padrãoAbriritem

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Drive\shell]
@="open"

[HKEY_CLASSES_ROOT\Drive\shell\open\command]
@="\"C:\\Program Files\\totalcmd\\TOTALCMD64.EXE\" \"%1\" /T /O /S"

[HKEY_CLASSES_ROOT\Directory\shell]
@="open"

[HKEY_CLASSES_ROOT\Directory\shell\open\command]
@="C:\\Program Files\\totalcmd\\TOTALCMD64.EXE \"%1\" /T /O /S"

2. Adicione um novo item de menu de contextoAbrir no Total Commander

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Drive\shell]
@="TotalCommander"

[HKEY_CLASSES_ROOT\Drive\shell\TotalCommander]
@="Open in Total Commander"

[HKEY_CLASSES_ROOT\Drive\shell\TotalCommander\command]
@="\"C:\\Program Files\\totalcmd\\TOTALCMD64.EXE\" \"%1\" /T /O /S"
"Icon"="C:\\Program Files\\totalcmd\\TOTALCMD64.EXE,0"

[HKEY_CLASSES_ROOT\Directory\shell]
@="TotalCommander"

[HKEY_CLASSES_ROOT\Directory\shell\TotalCommander]
@="Open in Total Commander"
"Icon"="C:\\Program Files\\totalcmd\\TOTALCMD64.EXE,0"

[HKEY_CLASSES_ROOT\Directory\shell\TotalCommander\command]
@="C:\\Program Files\\totalcmd\\TOTALCMD64.EXE \"%1\" /T /O /S"

Parâmetros de linha de comando do Total Commander

Existem 4 parâmetros de linha de comando usados ​​nos exemplos acima:

  • "%1": um caminho do diretório/unidade aberto, deve estar entre aspas para lidar corretamente com caminhos com caracteres de espaço em branco
  • /O: use a instância existente do Total Commander em vez de executar uma nova
  • /T: abra uma nova guia em vez de reutilizar a atualmente ativa
  • /S: o diretório/drive aberto será tratado como uma fonte, portanto será aberto no painel onde está a aba atualmente ativa

Verifica adocumentaçãopara mais parâmetros.

Responder2

Comparando o Registro antes e depois de configurar o Q-Dir como um explorador de arquivos com sua opção no menu "Extras", aqui está o que ele realmente faz (já que o software não parece ser de código aberto):

Key: HKEY_LOCAL_MACHINE\Software\Classes\Folder\shell
Change: Added Value
Value: *Q-Dir
Type: REG_SZ

Key: HKEY_LOCAL_MACHINE\Software\Classes\Folder\shell\*Q-Dir
Change: Added Key

Key: HKEY_LOCAL_MACHINE\Software\Classes\Folder\shell\*Q-Dir
Change: Added Value (Icon)
Value: C:\Program Files\Q-Dir\Q-Dir.exe
Type: REG_SZ

Key: HKEY_LOCAL_MACHINE\Software\Classes\Folder\shell\*Q-Dir\command
Change: Added Key

Key: HKEY_LOCAL_MACHINE\Software\Classes\Folder\shell\*Q-Dir\command
Change: Added Value
Value: "C:\Program Files\Q-Dir\Q-Dir.exe" /e>%L>%D>%1>%S>
Type: REG_SZ

Ele está criando um comando shell que também estaria no menu de contexto, porém, este será a ação "padrão", portanto, se você abrir algo no Windows File Explorer, ele será aberto no Q-Dir.

A primeira alteração no registro define o shell padrão como o *Q-Dircomando shell recém-criado.

O valor da última alteração no registro tem o seguinte significado:

"C:\Program Files\Q-Dir\Q-Dir.exe"-- Execute Q-Dir.exe
/e>%L>%D>%1>%S>-- com estes argumentos

>%L>%D>%1>%S>são variáveis ​​de linha de comando que são explicadas mais detalhadamente aqui:Quais variáveis ​​especiais estão disponíveis ao escrever um comando shell para um menu de contexto

No entanto, a >diferença entre eles e o /eé específica do Q-Dir. Q-Dir implementou especificamente uma /eopção que pega os valores para que possa dividir >e usar conforme necessário em uma cadeia de prioridade.


A grande questão: isso é seguro?

Não temos certeza, mas faça isso com cautela. Já notei que o programa de substituição do shell pode receber um argumento que se poderia esperar ser um caminho de arquivo quando na realidade ele é uma string GUID estranha, por exemplo, no formato ::{123E4567-E89B-12D3-A456-426614174000}\8\::{123E4567-E89B-12D3-A456-426614174000}. Isso ocorre, por exemplo, se você clicar com o botão direito -> desinstalar em um aplicativo no menu Iniciar, que normalmente seria passado para o Explorer (o shell padrão) e manipulado a partir daí.

Uma maneira de lidar com esse problema seria criar um programa intermediário que receba os argumentos, garanta que seja um caminho de arquivo e, caso contrário, passe os argumentos para o explorer.exe em vez de abrir o shell realmente desejado. Programas como o Q-Dir têm isso ou algo semelhante programado diretamente nele, por isso isso não é necessário para o Q-Dir.

Responder3

Não tenho certeza sobre o FreeCommander, masQ-Dirtem uma opção para definir esse gerenciador de arquivos como padrão:

insira a descrição da imagem aqui

Essa configuração tem algumas limitações se for executada como um aplicativo portátil. Por exemplo, Win Einicia o Windows Explorer, embora haja uma entrada no menu de contexto para abrir uma pasta com Q-Dir.

Responder4

Como recompensa, Erel Segal-Halevi pediu um gerenciador de arquivos com abas.

Existem muitos gerenciadores de arquivos alternativos, a maioria gratuitos, e alguns deles suportam guias. Uma lista desses produtos com avaliações pode ser encontrada no artigo Melhor gerenciador de arquivos grátis. Desta lista, Erel escolheu QTTabBar, que estende o Windows Explorer por guias e visualizações de pastas extras.

Existem até produtos que podem adicionar guias a qualquer produto no Windows, incluindo o Windows Explorer: Tidy Tabs e Espaço de Tarefas.

informação relacionada