Я разрабатываю программу на C # WinForms, которая, когда пользователь щелкает правой кнопкой мыши по каталогу и выбирает элемент, который я добавил в контекстное меню оболочки (которое открывает .exe для моего приложения), запускается в фоновом режиме в зависимости от того, гдепользователь щелкает правой кнопкой мыши.
Я уже выяснил, как установить его и добавить в правильное контекстное меню, но я не могу понять самую важную часть программы.Я уже посмотрел здесь , но это не отвечает на мой вопрос, и ответ, который он дает, просто приводит к другому вопросу.
Я также понимаю, что аргументы командной строки существуют, и этокаким образом получен ответ на этот вопрос. Когда я захожу на веб-сайт Microsoft об использовании аргументов командной строки, речь идет только об использовании фактической командной строки, которую я не использую.
Итаку меня вопрос:
Как именно я могу получить путь к каталогу, когда пользователь щелкает правой кнопкой мыши папку и выбирает контекстное меню оболочки, которое я добавил?
Если мне нужно использовать командную строку в фоновом режиме, это нормально, мне просто нужно иметь возможность получить и отправить путь к каталогу для моей программы.
Вот соответствующий код для того, как я использую введенный каталог.По сути, источником является путь к каталогу, который я хочу, когда пользователь щелкает правой кнопкой мыши.
private void recursiveCheck(string source)
{
string[] directories = Directory.GetDirectories(source);
foreach(string directory in directories)
{
string test = new DirectoryInfo(directory).Name;
if (test.Length >= 3 && (test.Substring(test.Length - 3).Equals("val", StringComparison.InvariantCultureIgnoreCase) || (test.Substring(test.Length - 3).Equals("ash", StringComparison.InvariantCultureIgnoreCase)))
{
if (Directory.Exists(directory + "\\STARTUP"))
testing_dir(directory);
else
{
MessageBox.Show("Error! Startup folder does not exist in: " + test);
Application.Exit();
}
}
else
recursiveCheck(directory);
}
}