Csharp/C Sharp by API/System.Diagnostics/ProcessStartInfo

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

new ProcessStartInfo()

<source lang="csharp"> using System.Diagnostics; class MainClass {

   public static void Main()
   {
       ProcessStartInfo startInfo = new ProcessStartInfo();
       startInfo.FileName = "notepad.exe";
       startInfo.Arguments = "yourFile.cs";
       
       Process.Start(startInfo);
   }

}


 </source>


ProcessStartInfo.Arguments

<source lang="csharp"> using System.Diagnostics; public class StartingProcesses {

   public static void Main()
   {
       ProcessStartInfo startInfo = new ProcessStartInfo();
       startInfo.FileName = "notepad.exe";
       startInfo.Arguments = "process.cs";
       
       Process.Start(startInfo);
   }

}


 </source>


ProcessStartInfo.ErrorDialog

<source lang="csharp"> using System; using System.Diagnostics; class MainClass {

   public static void Main()
   {
       ProcessStartInfo startInfo = new ProcessStartInfo();
       startInfo.FileName = "notepad.exe";
       startInfo.Arguments = "file.txt";
       startInfo.WorkingDirectory = @"C:\Temp";
       startInfo.WindowStyle = ProcessWindowStyle.Maximized;
       startInfo.ErrorDialog = true;
       Process process;
       try
       {
           process = Process.Start(startInfo);
           Console.WriteLine("Waiting 30 seconds for process to finish.");
           if (process.WaitForExit(30000))
           {
               Console.WriteLine("Process terminated.");
           }
           else
           {
               Console.WriteLine("Timed out waiting for process to end.");
           }
       }
       catch (Exception ex)
       {
           Console.WriteLine("Could not start process.");
           Console.WriteLine(ex);
       }
   }

}


 </source>


ProcessStartInfo.FileName

<source lang="csharp"> using System.Diagnostics; public class StartingProcesses {

   public static void Main()
   {
       ProcessStartInfo startInfo = new ProcessStartInfo();
       startInfo.FileName = "notepad.exe";
       startInfo.Arguments = "process.cs";
       
       Process.Start(startInfo);
   }

}


 </source>


ProcessStartInfo.RedirectStandardOutput

<source lang="csharp"> using System; using System.Diagnostics; public class RedirectingProcessOutput {

   public static void Main()
   {
       Process p = new Process();
       p.StartInfo.FileName = "cmd.exe";
       p.StartInfo.Arguments = "/c dir *.cs";
       p.StartInfo.UseShellExecute = false;
       p.StartInfo.RedirectStandardOutput = true;
       p.Start();
       
       string output = p.StandardOutput.ReadToEnd();
       
       Console.WriteLine("Output:");
       Console.WriteLine(output);    
   }

}


 </source>


ProcessStartInfo.UseShellExecute

<source lang="csharp">

using System; using System.Diagnostics; public class RedirectingProcessOutput {

   public static void Main()
   {
       Process p = new Process();
       p.StartInfo.FileName = "cmd.exe";
       p.StartInfo.Arguments = "/c dir *.cs";
       p.StartInfo.UseShellExecute = false;
       p.StartInfo.RedirectStandardOutput = true;
       p.Start();
       
       string output = p.StandardOutput.ReadToEnd();
       
       Console.WriteLine("Output:");
       Console.WriteLine(output);    
   }

}


 </source>


ProcessStartInfo.WindowStyle

<source lang="csharp"> using System; using System.Diagnostics; class MainClass {

   public static void Main()
   {
       ProcessStartInfo startInfo = new ProcessStartInfo();
       startInfo.FileName = "notepad.exe";
       startInfo.Arguments = "file.txt";
       startInfo.WorkingDirectory = @"C:\Temp";
       startInfo.WindowStyle = ProcessWindowStyle.Maximized;
       startInfo.ErrorDialog = true;
       Process process;
       try
       {
           process = Process.Start(startInfo);
           Console.WriteLine("Waiting 30 seconds for process to finish.");
           if (process.WaitForExit(30000))
           {
               Console.WriteLine("Process terminated.");
           }
           else
           {
               Console.WriteLine("Timed out waiting for process to end.");
           }
       }
       catch (Exception ex)
       {
           Console.WriteLine("Could not start process.");
           Console.WriteLine(ex);
       }
   }

}


 </source>


ProcessStartInfo.WorkingDirectory

<source lang="csharp"> using System; using System.Diagnostics; class MainClass {

   public static void Main()
   {
       ProcessStartInfo startInfo = new ProcessStartInfo();
       startInfo.FileName = "notepad.exe";
       startInfo.Arguments = "file.txt";
       startInfo.WorkingDirectory = @"C:\Temp";
       startInfo.WindowStyle = ProcessWindowStyle.Maximized;
       startInfo.ErrorDialog = true;
       Process process;
       try
       {
           process = Process.Start(startInfo);
           Console.WriteLine("Waiting 30 seconds for process to finish.");
           if (process.WaitForExit(30000))
           {
               Console.WriteLine("Process terminated.");
           }
           else
           {
               Console.WriteLine("Timed out waiting for process to end.");
           }
       }
       catch (Exception ex)
       {
           Console.WriteLine("Could not start process.");
           Console.WriteLine(ex);
       }
   }

}


 </source>