0

我正在开发一个 Windows 应用程序。我正在调用命令提示符,我需要调用 exe 文件,该 exe 文件带有参数。

我能够打开命令提示符但无法发送参数

        string  strCmdText = "create-keyfile.exe ..\\KatanaFirmware\\key-template.txt ..\\Keyfiles\\new-keyfile.txt " + cableTextBox.Text.Trim()+" " + startIdTextBox.Text.Trim();
        System.Diagnostics.Process.Start("CMD.exe", strCmdText);

可以请帮助我。

谢谢

普尼斯

4

5 回答 5

5
 System.Diagnostics.ProcessStartInfo startInfo = new ProcessStartInfo("create-keyfile.exe");
startInfo.Arguments = "..\\KatanaFirmware\\key-template.txt ..\\Keyfiles\\new-keyfile.txt " + cableTextBox.Text.Trim()+" " + startIdTextBox.Text.Trim();
System.Diagnostics.Process.Start(startInfo);

您还可以在 Process.Start 上查看 MSDN 站点,其中包含有关如何执行 .exe 并将参数传递给它的示例。

于 2012-05-16T10:59:04.930 回答
1
ProcessStartInfo process = new ProcessStartInfo();
process.FileName = "yourprogram.exe";
process.Arguments = strCmdText; // or put your arguments here rather than the string
Process.Start(process);
于 2012-05-16T10:59:50.510 回答
0

您是否尝试过带有/k 或 /c 选项的 cmd

链接

/c :执行字符串指定的命令,然后停止。

/k :执行字符串指定的命令并继续。

   string  strCmdText = "/k create-keyfile.exe ..\\KatanaFirmware\\key-template.txt ..\\Keyfiles\\new-keyfile.txt " + cableTextBox.Text.Trim()+" " + startIdTextBox.Text.Trim();
   System.Diagnostics.Process.Start("CMD.exe", strCmdText);
于 2012-05-16T11:05:17.363 回答
0

你有没有尝试过

System.Diagnostics.Process.Start("CMD.exe "+strCmdText);

实际上,经过进一步检查,我认为您不需要调用 CMD.EXE 您应该调用您的 exe 文件,除非您当然使用 CMD 来显示某些内容

string  strCmdText =  "..\\KatanaFirmware\\key-template.txt ..\\Keyfiles\\new-keyfile.txt " + cableTextBox.Text.Trim()+" " + startIdTextBox.Text.Trim();
System.Diagnostics.Process.Start("create-keyfile.exe", strCmdText);
于 2012-05-16T10:57:09.247 回答
0

尝试这个。

string  strCmdText = "KatanaFirmware\\key-template.txt "+ "\\Keyfiles\\new-keyfile.txt " + cableTextBox.Text.Trim()+" " +     startIdTextBox.Text.Trim();
Process mp = new Process();
mp.StartInfo.FileName = "E:\\create-keyfile.exe"; //path of the exe that you want to run
mp.StartInfo.UseShellExecute = false;
mp.StartInfo.CreateNoWindow = true;
mp.StartInfo.RedirectStandardInput = true;
mp.StartInfo.RedirectStandardOutput = true;
mp.StartInfo.Arguments = strCmdText;
mp.Start();
mp.WaitForExit();

希望能帮助到你。

于 2012-05-16T11:31:42.820 回答