Utfører batch fil fra c # lydløst

stemmer
3

Jeg vet at dette spørsmålet har blitt spurt tidligere, og jeg har prøvd alle løsningene gitt i disse innleggene før, men jeg kan ikke synes å gjøre det arbeidet: -

static void CallBatch(string path)
        {
            int ExitCode;
            Process myProcess;

            ProcessStartInfo ProcessInfo;
            ProcessInfo = new ProcessStartInfo(cmd.exe, /c  + path);
            ProcessInfo.CreateNoWindow = true;
            ProcessInfo.UseShellExecute = true;

            myProcess = Process.Start(ProcessInfo);
            myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            myProcess.WaitForExit();

            myProcess.EnableRaisingEvents = true;
            myProcess.Exited += new EventHandler(process_Exited);

            ExitCode = myProcess.ExitCode;

            Console.WriteLine(ExitCode:  + ExitCode.ToString(), ExecuteCommand);
            myProcess.Close();
        }

Når jeg prøver å ringe batch-fil, viser det fortsatt vinduet selv om createNoWindow og UseShellExecute er begge satt til true.

Skal jeg sette noe annet å gjøre det kjøre batch-filen stille?

Publisert på 18/09/2012 klokken 23:39
kilden bruker
På andre språk...                            


1 svar

stemmer
4

Prøv dette:

Process myProcess = new Process();
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
myProcess.StartInfo.CreateNoWindow = true;
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.FileName = "cmd.exe";
myProcess.StartInfo.Arguments = "/c " + path;
myProcess.EnableRaisingEvents = true;
myProcess.Exited += new EventHandler(process_Exited);
myProcess.Start();
myProcess.WaitForExit();
ExitCode = myProcess.ExitCode;

Ideen er å ikke manipulere myProcess.StartInfoetter at du har startet prosessen: det er ubrukelig. Også du ikke trenger å sette UseShellExecutetrue, fordi du starter skallet selv ved å ringe cmd.exe.

Svarte 18/09/2012 kl. 23:49
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more