代码之家  ›  专栏  ›  技术社区  ›  Prix Winteroo

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

c#
  •  0
  • Prix Winteroo  · 技术社区  · 16 年前

    目前我正在使用下面的代码启动我的应用程序 (正在工作) :

    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是记事本)进程都无法识别它 除非我用命令来调用它 .

    我也可以从“开始”>“运行并启动”开始:

    start D:/my/path/file.bin additional args to raise app
    
    4 回复  |  直到 12 年前
        1
  •  2
  •   Aliostad    16 年前

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

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

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

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

        2
  •  1
  •   Hans Passant    16 年前

        3
  •  1
  •   Martin Peck    16 年前

    你试过设置。。。?

    myApp.UseShellExecute = true;
    

        4
  •  0
  •   Community Mohan Dere    9 年前

    尝试将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