为第三方应用程序运行shell命令,传递文件参数

时间:2012-02-09 00:47:56

标签: c# .net shell

我正在尝试编辑自己的shell命令,以包含来自另一个应用程序的另一个shell命令,即AxCrypt。从某种意义上说,我正在尝试将两个上下文菜单操作合并为一个。如果我右键单击文件,我会转到AxCrypt并选择“将文件加密到.EXE”。然后我再次右键单击加密文件并选择我的shell命令。

我之所以如此具体,是因为有人可能会有这样的事情。我添加了这个:

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. 确定我输入的可执行文件是否是Windows
  2. 中上下文菜单选择的正确可执行文件
  3. 正确运行此过程并为其提供我点击的文件的文件参数(就像我从上下文菜单中选择了他们的菜单项一样)
  4. 正确地将消息发送给AxCrypt我正在尝试做什么!

2 个答案:

答案 0 :(得分:1)

1 。确定我输入的可执行文件是否是正确的     窗口中的上下文菜单选择

运行ProcessMonitor并检查用于启动exe的路径是否正确 - 否则您会看到错误。

2 。正确运行此过程并为其提供文件参数     我点击的文件(好像我从中选择了他们的菜单项)     上下文菜单)

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

3 。正确地将消息发送给AxCrypt我正在尝试的内容     做!

向他们发送此SO Q&的链接A

答案 1 :(得分:0)

我遇到了同样的问题。看这个:

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();