Pergunta

Eu sou um novato .Net 2.0 e 3.5 desenvolvedor. Eu quero criar um aplicativo que cria um menu de contexto quando um arquivo é certo clicou no Vista. Após o clique direito - Acho que posso descobrir o resto, mas eu não sei a técnica para obter acesso à API Vista.

ACOMPANHAMENTO:

Como eu tenho lido algumas das informações que as pessoas têm respondido com, eu descobri que eu vou exagero aqui com as extensões de shell. Eu acho que posso manter este projeto muito mais simples se eu apenas chamar meu aplicativo e passar o nome do arquivo como um parâmetro. Isso ainda exigiria meu aplicativo para chegar no menu de contexto do explorador quando os arquivos com determinadas extensões são direito clicado. Como eu vou fazer isso?

Foi útil?

Solução

Com o risco de parecer inútil, eu recomendo contra esta na Net 2.0 ou 3.5. Como Brian disse que a coisa que você está tentando implementar é uma extensão de shell. Estes são implementados como bibliotecas que as cargas Vista de fachada.

Embora existam vários tutoriais em toda a web que dão instruções sobre como implementar estes em .Net 2.0 ou como alguns destes menção como idéia isso é ruim. Se você fizer o shell Vista carregar uma extensão de shell .Net ele é forçado a carregar todo o .Net CLR que sua extensão de shell requer. O que torna isso ainda pior é que você pode carregar apenas uma versão do total .Net CLR em um processo. Então se você tem uma extensão de shell que requer .Net 1.0 CLR e Vista foi carregado isso, ele não pode carregar o CLR 2.0 a sua extensão de shell requer.

Além disso, existem algumas artigos Stack Overflow já discutindo isso.

Algumas informações sobre implementar uma extensão de shell em C ++ não gerenciado (KBCafe PDF , não poderia encontrar um link html simples)

Outras dicas

A coisa que você está tentando escrever é chamado de "extensão de shell". Eu nunca escrevi um, então não posso dar-lhe um exemplo rápido, mas agora que você sabe que a sua chamada você provavelmente pode fazer mais progressos através da procura de tutoriais sobre o Google.

Estou bastante certo de que você não está autorizado a usar código gerenciado para extensões de shell de gravação para explorador em qualquer versão do Windows. Então, se você quiser escrever um, você precisa fazê-lo em uma linguagem "tradicional", como C ++.

Você precisa de um Context Menu Shell Extension , agora uma coisa a ter em mente é que você é não tem permissão para escrevê-los em .net (a velha coisa nova blog).
Você pode tentar escrever extensão out-of-process (o esqueleto é não gerenciado que chama serviço gerenciado através IPC), mas eu não vi ninguém doning isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top