Como posso adicionar um ícone ao meu item de menu de contexto personalizado no Windows 7?

9

Relacionado: Como posso adicionar um programa ao menu de contexto de todos os arquivos?

Eu criei meu item de menu de contexto personalizado e parece funcionar em todos os tipos de arquivo - mesmo através de links de atalho. (Selecionar minha opção personalizada executa a operação no destino do atalho, não no arquivo .lnk.) Agora, eu gostaria de criar um ícone para destacá-lo. Meu programa antivírus e o Notepad ++ parecem ter sido capazes de fazer isso, então eu sei que é possível. A única pergunta é como?

Iszi
fonte

Respostas:

10

Abra o regedit.exe e localize a chave que você criou para o item de menu personalizado.

Agora crie um novo valor de String e nomeie-o Icon. Clique duas vezes nele e digite o caminho para o seu arquivo de ícone personalizado:

c: \ folder \ icon.ico

Opcionalmente, você pode usar o arquivo shell32.dll do Windows, como no meu exemplo: Registro

O resultado:

Ícone no menu de contexto personalizado

Apenas uma observação adicional - parece que esse método funciona no Windows 7 (e provavelmente no Vista), mas o ícone não apareceu quando eu testei no Windows XP.

Siim K
fonte
Obrigado pela resposta e teste no XP. Vou ter que tentar isso hoje mais tarde. Além disso, notei que seu método parece diferir um pouco da resposta à minha pergunta anterior. (Veja o link nesta pergunta.) Na resposta anterior, o texto para o item de menu de contexto é armazenado no nome da chave. No seu, ele é armazenado em um valor de sequência dentro da chave. Existe alguma razão prática para a diferença?
Iszi
@ Iszi - não tenho certeza se existe alguma diferença real. Acontece que eu encontrei esse exemplo #
Siim K
11
Parece que você está certo sobre isso não funcionar no XP. Não consigo pensar no porquê, porque meu AV e o Notepad ++ ainda têm ícones. Eles parecem ter suas funções cobertas, no HKCR\*\shellex\ContextMenuHandlersentanto, e não posso começar a decifrar por conta própria como essas teclas funcionam.
Iszi
Testado e funciona no Windows 7. Vou em frente e postarei o XP como outra pergunta.
Iszi
2
@ luochen1990 É o número do índice - qual ícone do .dll é usado. Aqui está uma tabela para shell32.dll com os ícones e os índices correspondentes: help4windows.com/windows_7_shell32_dll.shtml
Siim K
4

... E se você quiser, poderá usar o ícone padrão / mesmo que seu programa (arquivo exe) já está usando.

Basta usar algo como abaixo como o conteúdo do seu Iconvalor de string que o @Slim K apontou na resposta dele:

"C:\Path\to\YourProgram.exe",0

O sublime Text 3 não usa um ícone para sua opção de menu de contexto. Então, adicionei um Iconvalor de sequência com o conteúdo que você vê na captura de tela.

1 1

2

brincadeira
fonte
o que significa o número '0' seguindo o caminho?
luochen1990
@ luochen1990, como mencionado na resposta aceita por Siim K, é o número de índice do ícone no arquivo DLL. Nesse caso, o número zero é o primeiro ícone na DLL. Você pode ler mais sobre este sistema de numeração aqui
Christian Sirolli