Run CMD command without displaying it?

前端 未结 4 1042
难免孤独
难免孤独 2021-02-20 09:59

I have created a Process to run command in CMD.

var process = Process.Start(\"CMD.exe\", \"/c apktool d app.apk\");
process.WaitForExit();

How

4条回答
  •  面向向阳花
    2021-02-20 10:27

    There are several issues with your program, as pointed out in the various comments and answers. I tried to address all of them here.

    ProcessStartInfo psi = new ProcessStartInfo();
    psi.FileName = "apktool";
    
    //join the arguments with a space, this allows you to set "app.apk" to a variable
    psi.Arguments = String.Join(" ", "d", "app.apk");
    
    //leave it to the application, not the OS to launch the file
    psi.UseShellExecute = false;
    
    //choose to not create a window
    psi.CreateNoWindow = true;
    
    //set the window's style to 'hidden'
    psi.WindowStyle = ProcessWindowStyle.Hidden;
    
    var proc = new Process();
    proc.StartInfo = psi;
    proc.Start();
    proc.WaitForExit();
    

    The main issues:

    • using cmd /c when not necessary
    • starting the app without setting the properties for hiding it

提交回复
热议问题