2010-01-19 10 views
5

Sto per strapparmi i capelli per mancanza di un metodo coerente e infallibile per ottenere gli elementi del menu di scelta rapida visualizzati da Explorer quando faccio clic con il pulsante destro del mouse su un elemento. Non voglio mostrare un menu, voglio solo analizzare gli elementi in background ed eseguirli in modo programmatico.Esegui in modo programmatico voci del menu di scelta rapida di Esplora risorse

Ho provato varie combinazioni di IShellFolder, IContextMenu e altre interfacce COM e non riesco a trovare nulla che funzioni in modo coerente.

Mi rendo conto che questa è una domanda vaga, ma se qualcuno ha esperienza nell'arena di eseguire in modo programmatico le voci del menu di contesto di Esplora risorse, qualsiasi aiuto sarebbe apprezzato.

+0

P.S. i miei capelli ti saranno grati :). – jgraves

+0

Questa è una delle aree in cui "vai a cercare nel registro" potrebbe essere una soluzione accettabile (le chiavi di registro sono parte dell'interfaccia documentata quindi non è così maliziosa come sembra). Hai provato? Ha solo provocato un'ulteriore perdita di capelli? – itowlson

+0

Consentitemi di ottenere maggiori informazioni sulla domanda, abbiamo un'applicazione .net che funziona su un tipo specifico di file e volete un comando del menu di scelta rapida di Windows Explorer che possa eseguire l'applicazione e passare il percorso del file (4 esempio) ad esso, è questo il tuo intento? –

risposta

2

Il maestro del guscio, Raymond Chen, ha fatto un'intera serie di posts su IContextMenu sul suo eccellente blog.

C'è anche una piccola applicazione freeware chiamato Runmenu che eseguirà elementi dal menu contestuale shell direttamente (Il sito sembra essere down, sono sicuro che si può trovare il file exe da qualche parte in rete)

+0

Ho già visto i post di Raymond Chen e sono abbastanza utili, ma non riesco ancora a chiarire alcuni dei comportamenti bizzarri che sto vedendo. Quell'app di Runmenu è fantastica. Proverò a mandare un'email all'autore per vedere se riesco a ottenere un po 'di aiuto. La parte della mia situazione che rende questo ancora più difficile è che sto provando a farlo da C#. – jgraves

5

Mi ci è voluta un'ora per trovare RunMenu, quindi risparmio tempo per tutti gli altri che cercano di trovarlo. Ecco il link che ho trovato, è la versione 2.2:

http://www.programbits.co.uk/downloads/runmenu.zip

Speranza che aiuta.

+2

'Spero che aiuti.» Non proprio, è solo il binario, nessuna fonte. – Synetech

3

Recentemente ho bisogno questo e trovato il codice sorgente dello strumento Context.exe http://www.maddogsw.com/cmdutils/

uscita Esempio:

PS D:\Downloads\cmdutils> .\Context.exe /text .\ReadMe.txt 
1: Open 
2: Print 
3: Edit 
4: Add to Multi-Rename List 
5: PowerCmd Here 
6: (bitmap) 
7: 7-Zip    --> 
8: ------------------------ 
9: Sign and encrypt 
10: More GpgEX options --> 
11: ------------------------ 
12: Open with   --> 
13: Search with InfoRapid 
14: ------------------------ 
15: (bitmap)    --> 
16: ------------------------ 
17: (bitmap)    --> 
18: ------------------------ 
19: (bitmap)    --> 
20: ------------------------ 
21: Unlocker 
22: ------------------------ 
23: Restore previous versions 
24: ------------------------ 
25: Send to    --> 
26: ------------------------ 
27: Cut 
28: Copy 
29: ------------------------ 
30: Create shortcut 
31: Delete 
32: ------------------------ 
33: Properties 
Choice? 30 
+0

Funziona alla grande e il codice sorgente è incluso. Grazie! – John

Problemi correlati