我想用参数启动一个EXE文件。
我尝试使用Button1启动一个consoleapp(正常)。使用Button2我试图用参数(工作)打开相同的控制台应用程序。使用Button3我试图用参数打开WindowsFromsApplication。 WindowsFromsApplication不运行并转换WindowsMessage,它无法打开(但不在调试模式中)。
如果我使用相同的WindowsFromsApplication,它可以使用桌面快捷方式和参数。
我的解决方案有什么问题?
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start(Application.StartupPath + "\\ParamTest1.exe");
}
private void button2_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start(Application.StartupPath + "\\ParamTest1.exe", "Test");
}
private void button3_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start(Application.StartupPath + "\\Tool.exe","UserName Password");
}
tool.exe代码:
static class Program
{
/// <summary>
/// Der Haupteinstiegspunkt für die Anwendung.
/// </summary>
[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FormMain(args));
}
}
FormMain:
public partial class FormMain: Form
{
string Raptoruser = "";
public FormMain(string[] args)
{
InitializeComponent();
...
Visual Studio按计划在调试文件夹中复制EXE。
答案 0 :(得分:0)
您需要使用ProcessStartInfo.Arguments属性传递参数。请注意,如果你的args包含你需要在你的args周围添加引号的空格,那么,我建议你需要像这样纠正你的代码:
Process.Start(new ProcessStartInfo(Application.StartupPath + "\\Tool.exe")
{
Arguments = String.Format(@"""{0} {1}""", UserName, Password)
}
);
并确保您的Tool.exe与解决方案的可执行文件放在同一位置。