2010-04-06 2 views
8

Sto tentando di visualizzare il menu di scelta rapida standard file/directory nell'applicazione WinForms: vorrei abilitare l'utente a fare le cose con i file nella mia applicazione mentre potrebbe in Explorer.Visualizzazione del menu di scelta rapida di Windows (file/directory) nell'applicazione C# winforms

Non ci dovrebbero essere due opzioni

  • popup menu contestuale con qualche chiamata di sistema
  • letto tutto dal menu contestuale di sistema e inserirlo nel mio menu contestuale

La prego di indicare io nella giusta direzione? Grazie

risposta

7

Ho scritto una libreria .NET per consentire questo. Potete trovare qui:

http://gong-shell.sourceforge.net/

La classe che stai cercando è ShellContextMenu all'interno di tale libreria.

+0

Grucciante quella libreria che hai creato è sorprendente. Non so molto su come vincere i moduli, quindi ho avuto difficoltà a provare a vedere come hai implementato il menu di scelta rapida. Devo implementarlo in wpf. Sono sicuro che sarà saggio implementarlo su wpf una volta che so come farlo nelle form di vittoria. –

+0

Anche io non ne ho bisogno per assomigliare alla finestra di dialogo del file. Ho solo un contenitore sulla mia applicazione wpf che mostra i file (icone con etichette) e vorrei abilitare gli utenti a vedere lo stesso menu contestuale che vedono quando fanno clic con il tasto destro su quel file su Windows Explorer. –

+0

@TonoNam: sfortunatamente non ho implementato il menu di scelta rapida: ho appena usato l'API della shell di Windows per visualizzare il menu di scelta rapida utilizzato da Explorer. Non ho idea di come lo avresti implementato in WPF, o anche se una cosa del genere sarebbe possibile, mi dispiace. – Grokys

3

Questo può rivelarsi molto impegnativo, quindi propongo due soluzioni:

  1. (Easy) Utilizzando la libreria che Groky suggerito, fare ciò che è fatto in FolderSizes. Il menu di scelta rapida Explorer viene visualizzato sotto forma di menu secondario. È possibile simulare questo visualizzando il menu di esplorazione quando si passa con il mouse sulla voce "Explorer Explorer".

    enter image description here

  2. (Hard) Se questo è insufficiente, si può andare fino in fondo e ottenere le voci di menu dal guscio, e creare il proprio menu. Questo articolo CodeProject (http://www.codeproject.com/KB/miscctrl/FileBrowser.aspx) passa attraverso il processo di enumerazione e richiamo dei comandi della shell per uno specifico oggetto shell e come enumerare i sottomenu.

+0

Kevin grazie mille per l'aiuto. Ho avuto una giornata intensa. Lo esaminerò APPENA POSSIBILE. –