在 C# 中启动一个进程
本文将介绍在 C# 中启动进程的多种方法。
C#
中的进程是什么
进程
允许开发人员访问本地和远程进程并启动和终止本地系统进程。
ProcessStartInfo
定义了一个 process
启动时使用的值的集合。Process
类位于 System.Diagnostics
命名空间中。
在 C#
中使用 Process.Start
来启动一个进程
请按照以下步骤使用 Process.Start
启动流程。
导入下面的库。
using System;
using System.Diagnostics;
创建 Main
类,并在 Main
类中编写此代码以启动进程(指定要启动的程序、URL 或文件)。
Process.Start(@"C:\Users\Shani\Desktop\process.txt");
源代码:
using System;
using System.Diagnostics;
class ProcesswithProcessStart {
public static void Main() {
Process.Start(@"C:\Users\Shani\Desktop\process.txt");
Console.WriteLine("Done");
}
}
Start
功能用于启动该过程。运行 ProcesswithProcessStart
类后,我们将获得此输出。
在 C#
中使用 ProcessStartInfo
启动进程
我们可以运行任何可执行文件。但是,可能需要 ProcessStartInfo
上的属性。
按照以下步骤使用 ProcessStartInfo
方法启动进程。
导入下面的库。
using System;
using System.Diagnostics;
StartInfo.FileName
属性指定要启动的程序或文档。我们将使用 Microsoft Word 程序作为示例。它是一个基本的文本编辑器和写入器。
process.StartInfo.FileName = "WINWORD.EXE";
文件名作为参数传递给 StartInfo.Arguments
。在这里,我们将启动一个名为 process.docx
的 word 文件。
process.StartInfo.Arguments = @"C:\Users\Shani\Desktop\process.docx";
源代码:
using System;
using System.Diagnostics;
Process process = new Process();
process.StartInfo.FileName = "WINWORD.EXE";
process.StartInfo.Arguments = @"C:\Users\Shani\Desktop\process.docx";
process.Start();
输出:
在 C#
中使用 Process.GetProcesses
来启动一个进程
Process.GetProcesses
方法生成链接到现有进程资源的新 Process
组件列表。
导入下面的库。
using System;
using System.Diagnostics;
此代码将生成所有进程的列表。
Process[] LinkedProcesses = Process.GetProcesses();
之后,我们获得了一系列进程。
Array.ForEach(LinkedProcesses, (process) => {
Console.WriteLine("Process: {0} Id: {1}", process.ProcessName, process.Id);
});
ReadKey()
函数将保持屏幕。
Console.ReadKey();
源代码:
using System;
using System.Diagnostics;
Process[] LinkedProcesses = Process.GetProcesses();
Array.ForEach(LinkedProcesses, (process) => {
Console.WriteLine("Process: {0} Id: {1}", process.ProcessName, process.Id);
});
Console.ReadKey();
输出:
在 C#
中使用 Process.GetProcessesByName
来启动一个进程
Process.GetProcessesByName
方法生成一个新 Process
组件数组,并将它们与现有进程资源相关联,该资源与提供的进程同名。
导入下面的库。
using System;
using System.Diagnostics;
与 Internet 下载管理器关联的所有进程都在示例中生成。生成它们的 ID 和进程名称。
Process[] LinkedProcesses = Process.GetProcessesByName("InternetDownloadManager");
用户获取其中名称为 IDM
的进程列表。
Console.WriteLine("{0} IDM LinkedProcesses", LinkedProcesses.Length);
为了访问函数返回的所有进程,我们使用了一个 foreach
循环。
访问每个进程的 ID。最后,我们显示发现的进程总数。
Array.ForEach(LinkedProcesses, (process) => {
Console.WriteLine("Process: {0} Id: {1}", process.ProcessName, process.Id);
});
源代码:
using System;
using System.Diagnostics;
Process[] LinkedProcesses = Process.GetProcessesByName("InternetDownloadManager");
Console.WriteLine("{0} IDM LinkedProcesses", LinkedProcesses.Length);
Array.ForEach(LinkedProcesses, (process) => {
Console.WriteLine("Process: {0} Id: {1}", process.ProcessName, process.Id);
});
Console.ReadKey();
输出:
在 C#
中使用 StandardOutput
来启动一个进程
StandardOutput
属性返回可用于读取应用程序基于文本的输出的路径。
我们可以使用这个属性(在 ProcessStartInfo
上可用)重定向标准流程输出。我们可以观察一个程序从另一个程序的输出。
导入下面的库。
using System;
using System.Diagnostics;
using System.IO;
我们将在此处指定我们希望输出的进程的名称。
Prs.StartInfo.FileName = "ipconfig.exe";
我们可以通过将 UseShellExecute
设置为 false 来重定向输入、输出和错误流。
Prs.StartInfo.UseShellExecute = false;
Prs.StartInfo.RedirectStandardOutput = true;
此代码将使用你提供的信息启动该过程。
Prs.Start();
对于标准输出,我们获得 StreamReader
。
StreamReader sr = Prs.StandardOutput;
ReadToEnd()
函数用于读取所有数据。
string dataoutput = sr.ReadToEnd();
ReadKey()
将保持屏幕显示输出。
Console.ReadKey();
源代码:
using System;
using System.Diagnostics;
using System.IO;
class StandarOutput {
public static void Main() {
using (Process Prs = new Process()) {
Prs.StartInfo.FileName = "ipconfig.exe";
Prs.StartInfo.UseShellExecute = false;
Prs.StartInfo.RedirectStandardOutput = true;
Prs.Start();
StreamReader sr = Prs.StandardOutput;
string dataoutput = sr.ReadToEnd();
Console.WriteLine(dataoutput);
Console.ReadKey();
}
}
}
输出:
在 C#
中使用 Process.Kill
来停止一个进程
下面的示例启动一个程序,然后在几秒钟后终止它。
导入下面的库。
using System;
using System.Diagnostics;
using System.Threading;
使用 Thread.Sleep(5000)
,该进程启动记事本并在三秒后终止它。
Thread.Sleep(5000);
Kill()
函数用于终止进程。
process.Kill();
源代码:
using System;
using System.Diagnostics;
using System.Threading;
class KillProcess {
public static void Main() {
Process process = Process.Start("notepad.exe");
Thread.Sleep(1000);
process.Kill();
}
}
相关文章
在 C# 中将 List<string>转换为字符串
发布时间:2024/03/16 浏览次数:198 分类:编程语言
-
在 C# 中,有两种主要方法可用于将 List
转换为字符串变量,Linq 方法和 String.Join()函数。
在 C# 中将 List<string>转换为字符串
发布时间:2024/03/16 浏览次数:171 分类:编程语言
-
在 C# 中,有两种主要方法可用于将 List
转换为字符串变量,Linq 方法和 String.Join()函数。
在 C# 中将 List<string>转换为字符串
发布时间:2024/03/16 浏览次数:187 分类:编程语言
-
在 C# 中,有两种主要方法可用于将 List
转换为字符串变量,Linq 方法和 String.Join()函数。
在 C# 中发出 HTTP POST Web 请求
发布时间:2024/02/04 浏览次数:131 分类:编程语言
-
在 C# 中,可以使用 3 种主要方法来发出 HTTP POST Web 请求:WebClient 类,HttpWebRequest 类和 HttpClient 类。本教程将讨论在 C# 中发出 HTTP POST Web 请求的方法。使用 C# 中的 WebClient 类发出 HTTP POST Web 请求
在 C# 中运行命令提示符命令
发布时间:2024/02/04 浏览次数:130 分类:编程语言
-
Process 类可用于在 C# 中运行命令提示符命令。在 C# 中使用 Process.Start() 函数运行命令提示符命令
在 C# 中调整图像大小
发布时间:2024/02/04 浏览次数:203 分类:编程语言
-
有两种主要方法可用于在 C# 中调整图像的大小,Bitmap 类构造函数和 graphics.DrawImage()函数。在本教程中,我们将讨论在C#中调整图像大小的方法。我们将带您完成整个过程,从加载原始图像到保
在 C# 中下载图片
发布时间:2024/02/04 浏览次数:138 分类:编程语言
-
有 3 种主要方法可用于下载 C# 中的图片,WebClient.DownloadFile()函数,Bitmap 类和 Image.FromStream()函数。在 C# 中使用 WebClient 类下载图片 WebClient 类提供了用于向 C# 中的 URL 发送数据和从 URL 接收数据
在 C# 中使用秒表
发布时间:2024/02/04 浏览次数:139 分类:编程语言
-
我们可以使用 Stopwatch 类来计算 C# 中的经过时间。使用 C# 中的秒表类计算经过时间 Stopwatch 类在 C# 中准确测量经过的时间。
在 C# 中获取可执行路径
发布时间:2024/02/04 浏览次数:200 分类:编程语言
-
有 3 种主要方法可用于获取 C# 中程序的可执行路径,即 Assembly 类,AppDomain 类和 Path 类。本教程将介绍获取 C# 代码的可执行路径的方法。使用 C# 中的 Assembly 类获取可执行路径