Share via


Scelta di un metodo di menu di scelta rapida statico o dinamico

Questo argomento è organizzato come segue:

Scegliere un metodo verbo

Si consiglia vivamente di implementare un menu di scelta rapida usando uno dei metodi dei verbi statici.

Metodi verbi statici

I verbi statici sono i verbi più semplici da implementare, ma offrono comunque funzionalità avanzate. Scegliere sempre il metodo di menu di scelta rapida più semplice che soddisfi le proprie esigenze.

Verbo statico Descrizione
CreateProcess con parametri della riga di comando Questo è il mezzo più semplice e familiare per implementare un verbo statico. Un processo viene richiamato tramite una chiamata alla funzione CreateProcess con i file selezionati ed eventuali parametri facoltativi passati come riga di comando. Verrà aperto il file o la cartella.
Questo metodo presenta le limitazioni seguenti:
  • La lunghezza della riga di comando è limitata a 2000 caratteri, che limita il numero di elementi che il verbo può gestire.
  • Può essere usato solo con gli elementi del file system.
  • Non abilita il riutilizzo di un processo già in esecuzione.
  • Richiede l'installazione di un eseguibile per gestire il verbo.

DropTarget/Idroptarget Un'attivazione verbo basata su COM significa che supporta l'attivazione in-proc o out-of-process. DropTarget/IDropTarget supporta anche il riutilizzo di un gestore già in esecuzione quando l'interfaccia IDropTarget viene implementata da un server locale. Esprime inoltre perfettamente gli elementi tramite l'oggetto dati sottoposto a marshalling e fornisce un riferimento alla catena di siti di chiamata in modo che sia possibile interagire con il invoker tramite QueryService.
Windows 7 e versioni successive: IExecuteCommand Metodo di implementazione più diretto. Poiché si tratta di un metodo invoke basato su COM (ad esempio DropTarget), questa interfaccia supporta l'attivazione in-process e out-of-process. Il verbo implementa IExecuteCommand e IObjectWithSelection e facoltativamente IInitializeCommand. Gli elementi vengono passati direttamente come matrice di elementi shell e altri parametri del invoker sono disponibili per l'implementazione del verbo, inclusi il punto invoke, lo stato della tastiera e così via.
Windows 7 e versioni successive:ExplorerCommand/ IExplorerCommand Consente alle origini dati che forniscono i comandi del modulo di comando tramite IExplorerCommandProvider di usare tali comandi come verbi in un menu di scelta rapida. Poiché questa interfaccia supporta solo l'attivazione in-process, è consigliabile usare le origini dati shell che devono condividere l'implementazione tra i comandi e i menu di scelta rapida.

 

Nota

IExplorerCommand è un ibrido tra un verbo statico e dinamico. IExplorerCommand è stato dichiarato in Windows Vista, ma la possibilità di implementare un verbo in un menu di scelta rapida è una novità di Windows 7.

 

Per altre informazioni sulle query IDropTarget e Shell per gli attributi di associazione di file, vedere Tipi percepiti e registrazione dell'applicazione.

Metodi di verbo dinamico preferiti

Sono preferibili i seguenti metodi di verbo dinamico:

Tipo verbo Descrizione
Verbo statico (elencato nella tabella precedente) + Sintassi query avanzata (AQS) Questa scelta ottiene la visibilità del verbo dinamico.
Windows 7 e versioni successive: IExplorerCommand Questa scelta consente un'implementazione comune di verbi ed esplora comandi visualizzati nel modulo di comando in Esplora risorse.
Windows 7 e versioni successive: IExplorerCommandState + verbo statico Questa scelta ottiene anche la visibilità dei verbi dinamici. Si tratta di un modello ibrido in cui viene usato un semplice gestore in-process per calcolare se un verbo statico specificato deve essere disattivato. Questa operazione può essere applicata a tutti i metodi di implementazione dei verbi statici per ottenere un comportamento dinamico e ridurre al minimo l'esposizione della logica in-process. IExplorerCommandState offre il vantaggio di essere in esecuzione su un thread in background, evitando così blocchi dell'interfaccia utente. È notevolmente più semplice di IContextMenu.

 

Metodi verbi dinamici sconsigliati

IContextMenu è il metodo più potente ma anche il metodo più complicato da implementare. Si basa su oggetti COM in-process eseguiti sul thread del chiamante, che in genere Esplora risorse, ma possono essere qualsiasi applicazione che ospita gli elementi. IContextMenu supporta la visibilità dei verbi, l'ordinamento e il disegno personalizzato. Alcune di queste funzionalità sono state aggiunte alle funzionalità dei verbi statici, ad esempio un'icona da associare a un comando e IExplorerCommand per gestire la visibilità.

Se è necessario estendere il menu di scelta rapida per un tipo di file registrando un verbo dinamico per il tipo di file, seguire le istruzioni fornite in Personalizzazione di un menu di scelta rapida tramite verbi dinamici.

Estendere un menu di scelta rapida

Dopo aver scelto un metodo verbo, è possibile estendere un menu di scelta rapida per un tipo di file registrando un verbo statico per il tipo di file. Per altre informazioni, vedere Creazione di gestori di menu di scelta rapida.

Supporto per i metodi verbi in base al sistema operativo

Il supporto per i metodi di chiamata verbo per sistema operativo è elencato nella tabella seguente.

Verb, metodo Windows XP Windows Vista Windows 7 e versioni successive
CreateProcess X X X
DDE X X X
DropTarget X X X
ExecuteCommand X X
ExplorerCommand X
ExplorerCommandState X

 

Procedure consigliate per i gestori di menu di scelta rapida e più verbi di selezione

Creazione di gestori di menu di scelta rapida

Personalizzazione di un menu di scelta rapida tramite verbi dinamici

Menu di scelta rapida e gestori di menu di scelta rapida

Informazioni di riferimento sul menu di scelta rapida

Verbi e associazioni di file