Scelta di un metodo di menu di scelta rapida statico o dinamico
Questo argomento è organizzato come segue:
- Scegliere un metodo verbo
- Estendere un menu di scelta rapida
- Supporto per i metodi verbi in base al sistema operativo
- Argomenti correlati
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:
|
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 |
Argomenti correlati
-
Procedure consigliate per i gestori di menu di scelta rapida e più verbi di selezione
-
Personalizzazione di un menu di scelta rapida tramite verbi dinamici
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per