запустить команду оболочки для стороннего приложения, передать аргументы файла - PullRequest
0 голосов
/ 09 февраля 2012

Я пытаюсь отредактировать свою собственную команду оболочки, чтобы включить другую команду оболочки из другого приложения, а именно AxCrypt. В некотором смысле я пытаюсь объединить два действия контекстного меню в одно. Если я щелкну правой кнопкой мыши по файлу, я перейду к AxCrypt и выберу «Зашифровать файл в .EXE». Затем я снова щелкаю правой кнопкой мыши по зашифрованному файлу и выбираю команду оболочки.

Причина, по которой я так конкретен, в том, что у кого-то уже может быть что-то подобное. Я добавил это:

try
{
  System.Diagnostics.Process proc = new System.Diagnostics.Process();
  proc.EnableRaisingEvents = true;
  proc.StartInfo.FileName = @"C:\Program Files\Axantum\AxCrypt\AxCrypt.exe";
  proc.Start();
  MessageBox.Show("AxCrypt run");
}...

Я получаю свое сообщение, но приложение AxCrypt не запускается. любые идеи о том, как

  1. определить, является ли введенный мною исполняемый файл правильным для выбора контекстного меню в окнах
  2. правильно запустить этот процесс и передать ему аргумент файла для файла, на который я нажал (как будто я выбрал их пункт меню из контекстного меню)
  3. правильно сформулируйте сообщение для отправки в AxCrypt о том, что я пытаюсь сделать!

Ответы [ 2 ]

1 голос
/ 09 февраля 2012

1 .определите, является ли введенный мною исполняемый файл верным для выбора контекстного меню в windows

Run ProcessMonitor и проверьте правильность пути, используемого для запуска exe-файла - иначе выпосмотрим что не так.

2 .правильно запустить этот процесс и передать ему аргумент файла для файла, по которому я щелкнул (как будто я выбрал их пункт меню из контекстного меню)

string args = String.Format(@"{0}", "A File Arg");
proc.StartInfo.Arguments = args;

3 .правильно напишите сообщение, чтобы отправить AxCrypt о том, что я пытаюсь сделать!

Отправьте им ссылку на этот вопрос Q & A

0 голосов
/ 10 ноября 2015

У меня была такая же проблема. Посмотри это:

System.Diagnostics.Process pProcess = new System.Diagnostics.Process();
        pProcess.StartInfo.FileName = @"C:\Users\Vitor\Documents\Visual Studio 2015\Projects\ConsoleApplication1\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe";
        pProcess.StartInfo.Arguments = "olaa";
        pProcess.StartInfo.UseShellExecute = false;
        pProcess.StartInfo.RedirectStandardOutput = true;
        pProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
        pProcess.StartInfo.CreateNoWindow = true;
        pProcess.Start();
        string output = pProcess.StandardOutput.ReadToEnd();
        pProcess.WaitForExit();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...