目前我正在使用以下代码启动我的应用程序(正在运行):
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
答案 0 :(得分:2)
1)您不必提供cmd.exe的完整路径。系统将能够找到它
2)您似乎正在尝试使用参数运行cmd.exe以运行bin文件。这不起作用。
3)什么是bin文件?您可以将默认应用程序分配给.bin文件类型。或者,使用ProcessStartInfo启动aplication runner并传递.bin文件。
4)不确定所有应用程序是否都会使用“/”代替“\”。
答案 1 :(得分:1)
答案 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