Process.Start无法识别我的可执行文件?

时间:2010-10-27 11:57:18

标签: c#

目前我正在使用以下代码启动我的应用程序(正在运行)

ProcessStartInfo myApp = new ProcessStartInfo();
myApp.FileName = "cmd.exe";
myApp.Arguments = @"/K D:\dir\file.bin additional args to raise app";
myApp.WindowStyle = ProcessWindowStyle.Hidden;
myApp.CreateNoWindow = true;

try
{
    Process.Start(myApp);
}
catch (Exception ex)
{
    MessageBox.Show(ex.ToString());
}

但是如果可能的话我想直接调用它,但是因为它是.bin扩展名无法识别任何应用程序(例如txt是记事本)Process.Start将无法启动它除非我使用cmd来调用它

我还有什么方法可以直接启动我的应用程序,而无需从cmd召唤它?

我也可以使用begin>启动它跑步并开始:

start D:/my/path/file.bin additional args to raise app

4 个答案:

答案 0 :(得分:2)

1)您不必提供cmd.exe的完整路径。系统将能够找到它

2)您似乎正在尝试使用参数运行cmd.exe以运行bin文件。这不起作用。

3)什么是bin文件?您可以将默认应用程序分配给.bin文件类型。或者,使用ProcessStartInfo启动aplication runner并传递.bin文件。

4)不确定所有应用程序是否都会使用“/”代替“\”。

答案 1 :(得分:1)

嗯,这一切都很奇怪。如果文件实际上是一个可执行文件,则将文件重命名为.exe似乎是较低的绘图点。尝试cmd.exe / c start / wait d:/my/path/file.bin args。

答案 2 :(得分:1)

你试过设置......?

myApp.UseShellExecute = true;

...并使用.bin文件作为文件名?

答案 3 :(得分:0)

尝试将ShellExecute设置为false。我用这个,

Process proc = new Process();
proc.StartInfo.FileName = "app.bin";
proc.StartInfo.Arguments = "-1 -a -b";
proc.StartInfo.UseShellExecute = false;

它有效。

您还可以在StackOverflow上看到此帖子,Run external application with no .exe extension