Condividi tramite


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

Questo argomento è organizzato come segue:

Scegliere un metodo per il verbo

È consigliabile implementare un menu di scelta rapida usando uno dei metodi verbi statici.

Metodi verbi statici

I verbi statici sono i verbi più semplici da implementare, ma offrono comunque funzionalità avanzate. Scegli sempre il metodo di menu di scelta rapida più semplice che soddisfi le tue 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 di verbi basata su COM che supporta l'attivazione in-proc o out-of-proc. DropTarget/IDropTarget supporta anche il riutilizzo di un gestore già in esecuzione quando l'interfaccia IDropTarget viene implementata da un server locale. Esprime perfettamente anche gli elementi tramite l'oggetto dati sottoposto a marshalling e fornisce un riferimento alla catena di siti chiamante in modo da poter 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-proc e out-of-proc. Il verbo implementa IExecuteCommand e IObjectWithSelection e facoltativamente IInitializeCommand. Gli elementi vengono passati direttamente come matrice di elementi della 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 Abilita le fonti di dati che forniscono i comandi del modulo tramite IExplorerCommandProvider per usare tali comandi come azioni in un menu di scelta rapida. Poiché questa interfaccia supporta solo l'attivazione in-process, è consigliabile usare origini dati shell che devono condividere l'implementazione tra comandi e menu di scelta rapida.

 

Nota

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

 

Per ulteriori informazioni su IDropTarget e sulle query di Shell per gli attributi di associazione di file, vedere Tipi percepiti e registrazione delle applicazioni.

Metodi preferiti per verbi dinamici

Sono preferibili i metodi verbi dinamici seguenti:

Tipo verbo Descrizione
Verbo statico (elencato nella tabella precedente) + Sintassi di query avanzata (AQS) Questa opzione rende visibile il verbo dinamico.
Windows 7 e versioni successive: IExplorerCommand Questa scelta consente un'implementazione comune di verbi e comandi Explorer che vengono visualizzati nel modulo dei comandi 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 deve essere visualizzato un verbo statico specificato. 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 ha il vantaggio di essere in esecuzione su un thread in background, evitando così blocchi dell'interfaccia utente. È notevolmente più semplice di IContextMenu.

 

Metodi dinamici dei verbi 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 di solito è Esplora Risorse ma che può 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 dei menu contestuali.

Supporto per i metodi verbi in base al sistema operativo

Il supporto per i metodi di invocazione dei verbi per sistema operativo è elencato nella tabella seguente.

Metodo verbale Windows XP Windows Vista Windows 7 e versioni successive
CreaProcesso X X X
DDE X X X
DropTarget X X X
EseguiComando X X
Comando di esplorazione X
ExplorerCommandState X

 

Procedure consigliate per i gestori del menu contestuale e i verbi di selezione multipla

Creazione di gestori di menu di scelta rapida

Personalizzazione di un menu di scelta rapida tramite verbi dinamici

Menu contestuali di scelta rapida e gestori di menu contestuali di scelta rapida

Informazioni di riferimento sul menu di scelta rapida

Verbi e associazioni di file