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

C# Process.Start无法识别我的可执行文件?,c#,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;

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

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就是记事本)。除非我使用cmd调用它,否则Start不会启动它

还有什么其他方法可以直接启动我的应用程序而不必从cmd调用它

我也可以用begin>run和start开始:

start D:/my/path/file.bin additional args to raise app
1) 您不必提供cmd.exe的完整路径。系统将能够找到它

2) 您似乎正在尝试使用参数运行cmd.exe,以便运行bin文件。这是行不通的

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

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

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

2) 您似乎正在尝试使用参数运行cmd.exe,以便运行bin文件。这是行不通的

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


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

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

嗯,这真是太奇怪了。如果文件实际上是可执行文件,则将其重命名为.exe似乎是较低的绘制点。请尝试cmd.exe/c start/wait d:/my/path/file.bin args

你试过设置

myApp.UseShellExecute = true;

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

您是否尝试过设置

myApp.UseShellExecute = true;

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

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

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


您还可以在StackOverflow上看到此线程,请尝试将ShellExecute设置为false。我用这个,

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


你也可以在StackOverflow上看到这个线程,

你有没有在你的应用程序路径中尝试“\”?为什么你要运行的文件首先有“bin”扩展名?它不是我创建的文件,但扩展名是.bin,上面的代码工作得很好,我只是不喜欢dos窗口打开,我想知道是否有其他方法可以不用cmd@everyone这篇文章发表了一个输入,非常感谢你试图帮助我,所以我给了答案+1,并尝试/考虑了它。你有没有在你的应用程序路径中尝试“\”?为什么文件会这样你想运行一个扩展名为“bin”的文件吗?它不是我创建的文件,但扩展名是.bin,上面的代码工作得很好,我只是不喜欢dos窗口打开,我想知道是否有其他方法可以不用cmd@everyone这篇文章发表了一条意见,非常感谢你试图帮助我,所以我给了答案+1,并且也尝试/考虑了它。2)效果很好,正如我上面所说的,第一个代码可以工作,但我不想使用CMD打开应用程序,我想直接启动它,正如我所说的。3) bin文件不是我制作的,它是一个可执行文件或类似的东西,我只是简单地尝试制作一个程序,一旦完成一些事情,它就会运行bin程序。4)同意,因此我改为@“”,并使用\来代替。2)工作正常,正如我上面所说的,第一个代码可以工作,但我不想使用CMD打开应用程序,我想直接启动它,正如我所说的。3) bin文件不是我制作的,它是一个可执行文件或类似的东西,我只是简单地尝试制作一个程序,一旦完成一些事情,它就会运行bin程序。4)同意,因此我更改为@“”如果我将它重命名为.exe,程序将不会运行。它已编译,但我可以告诉它有更改验证,因此我必须按原样运行它。通常我只有一个.bat来运行它,但现在我正在制作一个应用程序来运行一些东西,然后才实际运行该软件,我想让它在应用程序中运行,而不需要任何bat或外部的东西来运行。如果我将其重命名为.exe,程序将不会运行,它将被编译,但我可以告诉它有更改验证我必须按原样运行它。通常我只有一个.bat来运行它,但现在我正在制作一个应用程序来运行一些东西,然后才实际运行软件,我想让它在应用程序中运行,而不需要任何bat或外部东西来运行。只是尝试了一下,它返回没有与此extesion或类似的应用程序,因为我的VS处于不同的语言我必须将错误转换为它的外观。只是尝试了一下,它返回没有与此extesion或类似的应用程序关联,因为我的VS处于不同的语言中,我必须将错误转换为它的外观。