我如何从C#开始一个进程?

如何启动一个进程,比如当用户点击一个button时启动一个URL?

    11 Solutions collect form web for “我如何从C#开始一个进程?”

    正如Matt Hamilton所build议的那样,对过程进行有限控制的快速方法是使用System.Diagnostics.Process类中的静态Start方法…

    using System.Diagnostics; ... Process.Start("process.exe"); 

    另一种方法是使用Process类的一个实例。 这允许对进程进行更多的控制,包括调度,它将运行的窗口的types,对我来说最有用的是能够等待进程完成。

     using System.Diagnostics; ... Process process = new Process(); // Configure the process using the StartInfo properties. process.StartInfo.FileName = "process.exe"; process.StartInfo.Arguments = "-n"; process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized; process.Start(); process.WaitForExit();// Waits here for the process to exit. 

    这个方法允许比我提到的更多的控制。

    您可以使用System.Diagnostics.Process.Start方法来启动一个进程。 你甚至可以将一个URL作为一个string传递,它将启动默认的浏览器。

    就像Matt所说的那样,使用Process.Start 。

    您可以传递一个URL或一个文档。 他们将由注册申请开始。

    例:

     Process.Start("Test.Txt"); 

    这将启动加载Text.Txt的Notepad.exe。

    我在自己的程序中使用了以下内容。

     Process.Start("http://www.google.com/etc/etc/test.txt") 

    这有点基本,但它为我做的工作。

    使用Process类。 MSDN文档有一个示例如何使用它。

    你可以使用这个语法来运行任何应用程序:

     System.Diagnostics.Process.Start("Example.exe"); 

    和一个URL相同。 只需在这个()之间写下你的URL即可。

    例:

     System.Diagnostics.Process.Start("http://www.google.com"); 
     var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "/YourSubDirectory/yourprogram.exe"); Process.Start(new ProcessStartInfo(path)); 

    声明这一点

     [DllImport("user32")] private static extern bool SetForegroundWindow(IntPtr hwnd); [DllImport("user32")] private static extern bool ShowWindowAsync(IntPtr hwnd, int a); 

    把它放在你的函数中(注意“checkInstalled”是可选的,但是如果你使用它,你必须实现它)

     if (ckeckInstalled("example")) { int count = Process.GetProcessesByName("example").Count(); if (count < 1) Process.Start("example.exe"); else { var proc = Process.GetProcessesByName("example").FirstOrDefault(); if (proc != null && proc.MainWindowHandle != IntPtr.Zero) { SetForegroundWindow(proc.MainWindowHandle); ShowWindowAsync(proc.MainWindowHandle, 3); } } } 

    注:我不知道这是否正常运行.exe的多个实例时。

    包括using System.Diagnostics;

    然后调用这个Process.Start("Paste your URL string here!");

    尝试这样的事情:

     using System.Web.UI; using System.Web.UI.WebControls; using System.Diagnostics; namespace btnproce { public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { string t ="Balotelli"; Process.Start("http://google.com/search?q=" + t); } } } 

    请注意,这是一个ASP.NET页面的示例。 你应该尝试一点点即兴。

     class ProcessStart { static void Main(string[] args) { Process notePad = new Process(); notePad.StartInfo.FileName = "notepad.exe"; notePad.StartInfo.Arguments = "ProcessStart.cs"; notePad.Start(); } } 

    例如,要启动Microsoft Word ,请使用以下代码:

     private void button1_Click(object sender, EventArgs e) { string ProgramName = "winword.exe"; Process.Start(ProgramName); } 

    有关更多解释,请查看此链接 。