COMO PASSAR MúLT. ARGUMENTOS PARA LINHA DE COMAND

 Tópico anterior Próximo tópico Novo tópico

COMO PASSAR MúLT. ARGUMENTOS PARA LINHA DE COMAND

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#496260 - 13/02/2021 16:36:12

FIREBULLBR
RIO DE JANEIRO
Cadast. em:Dezembro/2020


Oi! Meu programa tem uma chave no HKEY_CLASSES_ROOT/*/shell para aparecer no menu de contexto do Explorer. Para 1 arquivo, funciona PERFEITAMENTE! Eu usei '%V' para o argumento, e meu programa reconhece sem problemas, mas, quando seleciono 2 ou mais, não funciona!! Alguém conhece outro parâmetro ou outro método de fazer isso? Programas como WinRAR conseguem ler sem dificuldades vários arquivos sendo passados como argumento.



Resposta escolhida #496270 - 15/02/2021 12:11:08

OCELOT
SOROCABA
Cadast. em:Março/2012


O WinRar usa um ShellExtension para fazer isso, que é basicamente uma DLL que o Explorer var carregar e executar certas funções sempre que o usuário clicar com o botão direito em um arquivo e quando interagir com o menu, simplesmente usando o shell como você fez provavelmente ele vai executar o programa uma vez para cada arquivo



#496271 - 15/02/2021 18:50:36

FIREBULLBR
RIO DE JANEIRO
Cadast. em:Dezembro/2020


Citação:
:
O WinRar usa um ShellExtension para fazer isso, que é basicamente uma DLL que o Explorer var carregar e executar certas funções sempre que o usuário clicar com o botão direito em um arquivo e quando interagir com o menu, simplesmente usando o shell como você fez provavelmente ele vai executar o programa uma vez para cada arquivo

Hum, obrigado pela informação... Você saberia me dizer se eu também posso usar esse shellextension? Se ele é grátis etc... Ah, sim, e se funciona com Visual Basic, obviamente... Já caçei a internet inteira e tem muito pouco sobre context menu do explorer.



#496272 - 16/02/2021 09:18:27

OCELOT
SOROCABA
Cadast. em:Março/2012


Sim, é possível criar um Shell Extension, neste caso é um Context Menu Shell Extension, se pesquisar no google você encontra informações sobre isso, porém sua criação é bem complexa, ele requer a criação de uma DLL COM, a documentação acredito que exista apenas para C++, apesar disso é possível fazer em qualquer linguagem praticamente que permita criar DLLs COM, mas é bem complicado principalmente de testar e debugar.

Faz muito tempo que brinquei com isso, o que fiz mais recentemente foi uma extensão que gera thumbnail de arquivos para poder visualizar alguns arquivos de um programa que desenvolvo, e pra isso encontrei uma biblioteca chamada SharpShell que facilita um pouco a criação de vários tipos de Shell Extensions, ela está disponível no NuGet, e apesar dela ser em C# deve funcionar com o VB.Net mas acho que não existem exemplos dela usando VB.Net

Se pesquisar no google por

Context Menu Shell Extension VB.Net

Você até encontra exemplos de como fazer em VB.Net, porém a maioria é código antigo e nem sempre os links estão disponíveis



#496274 - 16/02/2021 13:36:20

FIREBULLBR
RIO DE JANEIRO
Cadast. em:Dezembro/2020


Citação:
:
Sim, é possível criar um Shell Extension, neste caso é um Context Menu Shell Extension, se pesquisar no google você encontra informações sobre isso, porém sua criação é bem complexa, ele requer a criação de uma DLL COM, a documentação acredito que exista apenas para C++, apesar disso é possível fazer em qualquer linguagem praticamente que permita criar DLLs COM, mas é bem complicado principalmente de testar e debugar.

Faz muito tempo que brinquei com isso, o que fiz mais recentemente foi uma extensão que gera thumbnail de arquivos para poder visualizar alguns arquivos de um programa que desenvolvo, e pra isso encontrei uma biblioteca chamada SharpShell que facilita um pouco a criação de vários tipos de Shell Extensions, ela está disponível no NuGet, e apesar dela ser em C# deve funcionar com o VB.Net mas acho que não existem exemplos dela usando VB.Net

Se pesquisar no google por

Context Menu Shell Extension VB.Net

Você até encontra exemplos de como fazer em VB.Net, porém a maioria é código antigo e nem sempre os links estão disponíveis

Ok, muito obrigado



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por FIREBULLBR em 16/02/2021 14:49:04