Domanda

Sono uno sviluppatore principiante .Net 2.0 e 3.5. Voglio creare un'applicazione che crei un menu di scelta rapida quando si fa clic con il tasto destro su un file in Vista. Dopo il clic destro, penso di riuscire a capire il resto, ma non conosco la tecnica per accedere all'API di Vista.

FOLLOW-UP:

Mentre ho letto alcune delle informazioni a cui la gente ha risposto, ho scoperto che sto esagerando qui con le estensioni della shell. Penso di poter rendere questo progetto molto più semplice se chiamo semplicemente la mia app e passo il nome file come parametro. Ciò richiederebbe comunque che la mia app venisse visualizzata nel menu di scelta rapida di Explorer quando si fa clic con il pulsante destro del mouse su file con determinate estensioni. Come posso fare per fare questo?

È stato utile?

Soluzione

Con il rischio di sembrare inutile, lo sconsiglio in .Net 2.0 o 3.5. Come ha detto Brian, la cosa che stai cercando di implementare è un'estensione della shell. Questi sono implementati come librerie caricate dalla shell Vista.

Mentre ci sono diversi tutorial sul web che danno istruzioni sull'implementazione di questi in .Net 2.0 o alcuni di questi citano la cattiva idea. Se si fa in modo che la shell Vista carichi un'estensione shell .Net, è costretta a caricare l'intero CLR .Net richiesto dall'estensione shell. Ciò che rende ancora peggio questo è che puoi caricare solo una versione dell'intero CLR completo in un processo. Quindi, se hai un'estensione shell che richiede .Net 1.0 CLR e Vista ha caricato questo, non può caricare il CLR 2.0 richiesto dall'estensione shell.

Inoltre ci sono alcuni articoli Stack Overflow ne sto già discutendo.

Alcune informazioni su implementando un'estensione shell in C ++ non gestito (KBCafe PDF , impossibile trovare un semplice link HTML)

Altri suggerimenti

La cosa che stai cercando di scrivere si chiama " shell extension " ;. Non ne ho mai scritto uno, quindi non posso darti un rapido esempio, ma ora che sai come si chiama, puoi probabilmente fare ulteriori progressi cercando tutorial su Google.

Sono abbastanza certo che non ti è permesso usare il codice gestito per scrivere estensioni della shell per Explorer in qualsiasi versione di Windows. Quindi, se vuoi scriverne uno, dovrai farlo in un "tradizionale" linguaggio come C ++.

È necessario un Estensione shell menu contestuale , ora una cosa da tenere a mente è che sei non ha il permesso di scriverli in .net (il vecchio blog delle novità). Puoi provare a scrivere un'estensione fuori processo (lo scheletro non è gestito che chiama il servizio gestito tramite IPC) ma non ho visto nessuno donarlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top