Process[] processes = Process.GetProcessesByName("your_program_name");在c#7.3不支持,应该怎么替换
时间: 2024-03-01 21:53:45 浏览: 18
在 C# 7.3 中,`Process.GetProcessesByName` 方法仍然可用,您可以直接使用该方法来获取指定名称的进程。如果您遇到了编译错误,可能是由于没有正确地引用 `System.Diagnostics` 命名空间。
如果您仍然无法使用 `Process.GetProcessesByName` 方法,可以尝试使用 `System.Diagnostics.Process.GetProcesses()` 方法获取所有正在运行的进程,然后通过遍历进程列表找到指定名称的进程。示例代码如下:
```csharp
using System.Diagnostics;
using System.Threading;
// 定义一个 Timer 对象
var timer = new Timer(CheckAndRun, null, 0, 1000); // 1000 毫秒 = 1 秒
// 定义 Timer 的回调函数
private static void CheckAndRun(object state)
{
// 获取所有正在运行的进程
Process[] processes = Process.GetProcesses();
foreach (Process process in processes)
{
if (process.ProcessName == "your_program_name")
{
// 如果指定名称的进程已经运行,则直接返回
return;
}
}
// 如果程序没有运行,则启动它
Process.Start("your_program_path");
}
```
在上面的代码示例中,我们使用 `Process.GetProcesses()` 方法获取所有正在运行的进程,然后通过遍历进程列表,查找指定名称的进程。如果找到了指定名称的进程,则直接返回;如果没有找到,则启动该程序。
请记得将 "your_program_name" 和 "your_program_path" 替换为您自己的程序名称和路径。