Novo ícone Shell para "." Tipo de arquivo

8

Eu criei com sucesso um comando ShellNew para que eu possa criar um novo arquivo em branco sem extensão de arquivo. O arquivo reg fica assim:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\.]

[HKEY_CLASSES_ROOT\.]
@="emptyFile"

[HKEY_CLASSES_ROOT\.\ShellNew]
"NullFile"=""
@="Empty File"
"ItemName"=""

[HKEY_CLASSES_ROOT\.\ShellNew\Config]
"NoExtension"=""

[-HKEY_CLASSES_ROOT\emptyFile]

[HKEY_CLASSES_ROOT\emptyFile]
@="Empty File"

[HKEY_CLASSES_ROOT\emptyFile\DefaultIcon]
@="%SystemRoot%\\system32\\imageres.dll,2"

Isso funciona fantástico e tudo. Ele cria o arquivo exatamente como eu quero, mas o ícone exibido na janela ShellNew é o ícone da partição do sistema da seguinte forma:

1 1

Como posso alterar esse ícone para corresponder ao DefaultIcon que estou fornecendo para o próprio tipo de arquivo? Eu tentei criar um valor de string "Icon" como o que eu tinha que fazer para os itens de menu Unity e Sublime Text, e isso não funcionava, não importa onde eu o colocasse.

GodsBane
fonte
Eu posso replicar. Tentando descobrir se há uma maneira de corrigi-lo ...
Karan
Suponho que você ainda não encontrou uma solução? Eu estou pensando que deve haver algo no registro afirmando que, como não possui um tipo de arquivo associado, ele assume que é uma unidade?
Godsbane
Parece que, e se eu tivesse descoberto, teria postado uma resposta, é claro.
Karan
Não consigo replicar isso.
Visual Vincent

Respostas:

3

Tente isso, funciona como mágica.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.]
@="emptyFile"

[HKEY_CLASSES_ROOT\.\ShellNew]
"NullFile"=""
@="Empty File"
"ItemName"=""
"IconPath"="C:\\windows\\system32\\imageres.dll,2"

[HKEY_CLASSES_ROOT\.\ShellNew\Config]
"NoExtension"=""

[-HKEY_CLASSES_ROOT\emptyFile]

[HKEY_CLASSES_ROOT\emptyFile]
@="Empty File"

[HKEY_CLASSES_ROOT\emptyFile\DefaultIcon]
@="%SystemRoot%\\system32\\imageres.dll,2"

Apenas mude. Eu adicionei um IconPath no nível .ext. Associações de tipo de arquivo são incríveis!

w32sh
fonte
Outra coisa é que, para o DefaultIcon do ProgID, você definiu uma cadeia de caracteres expansível, que realmente deveria ter sido do tipo REG_EXPAND_SZ, em vez de REG_SZ. Independentemente disso, o ShellNew parece não usar o ícone definido lá.
W32sh
Sim, é isso. Bem feito!
21716 Ben N
Uau, ~ 9 meses de idade, e uma correção tão simples. Trabalho incrível!
Godsbane
Ele disse que a recompensa estava prestes a fechar "em 2 horas". Foi quando eu respondi :)
w32sh 22/02
0

Você não deveria usar "imageres.dll, 3" porque seu terceiro ícone no imageres.dll?

Você pode experimentar o aplicativo Editor de Programas Padrão, abrir o programa, clicar em ícones, encontrar o tipo de arquivo, clicar em Avançar, escolher o ícone das imagens e salvar como arquivo .REG e verificar o que está dentro desse .reg.

orion310591
fonte
Você não pode usar o Editor de Programas Padrão para isso porque o arquivo que ele cria não tem extensão.
Godsbane
@ orion310591: O índice começa em 0. Portanto, tecnicamente é o segundo ícone.
W32sh
0

Se você conseguir encontrar o tipo "Arquivo Vazio" na ferramenta FileTypesMan, poderá alterar o Ícone Padrão lá.

FileTypesMan: http://www.nirsoft.net/utils/file_types_manager.html

Stian Lund
fonte
Tenho a impressão de que esse tipo de ferramenta faz apenas o que o OP fez manualmente, mas tentarei quando tiver tempo.
217 Ben Ben N
@ BenN Eu acho que você está correto - eu assumi que o OP só queria corrigi-lo, mas acho que eles querem encontrar uma solução de regedit.
Stian Lund
Em algum lugar, as janelas devem substituir o ícone porque o FileTypesMan vê o ícone correto, o exibe ali e, no entanto, o ShellNew ainda exibe o ícone da unidade do SO. Esse ainda é o caso do Windows 10, mesmo que eu duvidasse que isso tivesse mudado.
GodsBane
0

Por qualquer motivo, isso usa o mesmo ícone padrão da sua Cunidade.

Você pode ver isso criando a seguinte chave, se ela ainda não existir:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\C\DefaultIcon

E configurando (Padrão) para:

%SystemRoot%\\system32\\imageres.dll,2

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Receio não poder responder exatamente por que esse comportamento ocorre. Na verdade, há outro segmento aqui que consegue alterar o ícone com uma chave de registro diferente.

Jonno
fonte