2010-01-14 2 views
1

Я добавил элемент в контекстное меню Windows Explorer с помощью реестра. Я хочу, чтобы пользователь щелкнул правой кнопкой мыши по файлу, а затем нажимает на мой добавленный пункт контекстного меню, тогда приложение должно выполнить, а местоположение этого файла должно быть доступно.Выполнение двух задач при щелчке правой кнопкой мыши, C#

Мое приложение запускается на выполнение, но я не мог получить путь к файлу, на котором я право щелкнул

ответ

4

Как именно вы добавить этот пункт контекстного меню? Вам нужно передать имя файла где-нибудь, что обычно делается путем помещения %1 в исполняемую командную строку.

Так что, если команда, которую вы в настоящее время выполнения является

"C:\Program Files\MyCoolProgram\mcp.exe" 

должно быть

"C:\Program Files\MyCoolProgram\mcp.exe" %1 
3

Посмотрите здесь: A simple C# function to add context menu items in Explorer и обратите внимание на эту часть:

AddContextMenuItem(".zip", "ZipStrip", 
    "Open with &ZipStrip", Application.ExecutablePath + " %1"); 

Это вы получите полный путь к файлу в качестве первого аргумента на своем Main(string args[])

EDIT: Если вам придется иметь дело с аргументами, содержащими пробелы, попробуйте следующее:

AddContextMenuItem(".zip", "ZipStrip", 
    "Open with &ZipStrip", Application.ExecutablePath + " ""%1"""); 

Таким образом, вы аргумент будет заключен в двойные кавычки, сохраняя, что белые пространства.

0

Путь передается в качестве аргументов командной строки. В точке входа, вы можете получить доступ к нему, определяя string[] аргумент:

static void Main(string[] args) { 
    // the path is passed in the `args` array. 
} 

Он также должен быть доступен по телефону Environment.GetCommandLineArgs method.

Смежные вопросы