Отображение контекстного меню windows (файл/каталог) в приложении c# winforms

Я пытаюсь отобразить стандартное контекстное меню файла / каталога в приложении WinForms - я хотел бы позволить пользователю делать вещи с файлами в моем приложении, как он мог в Проводнике.

должно быть два варианта

  • всплывающее контекстное меню с некоторым системным вызовом
  • прочитайте все из системного контекстного меню и вставьте его в мое контекстное меню

не могли бы вы указать мне в правильном направлении? Спасибо

2 ответов


Я написал библиотеку .NET, чтобы разрешить это. Вы можете найти его здесь:

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

класс, который вы ищете, является ShellContextMenu в этой библиотеке.


Это может оказаться очень сложным, поэтому я предлагаю два решения:

  1. (легко) используя библиотеку, которую предложил Гроки,сделать то, что сделано в FolderSizes. контекстное меню Проводника показано как суб-меню. Вы можете имитировать это, отображая меню проводника, когда элемент" операция проводника " завис.

    enter image description here

  2. (жесткий) если это недостаточно, вы можете пройти весь путь и получить меню из оболочки, и создайте свое собственное меню. Эта статья CodeProject (http://www.codeproject.com/KB/miscctrl/FileBrowser.aspx) проходит процесс перечисления и вызова команд оболочки для определенного объекта оболочки и перечисления подменю.