我正在编写一个应用程序来检查是否安装了某些软件。我的一个案例是在寻找服务。我知道服务的完整路径。即“c:\somefolder\MyService.exe”我想检查该服务是否已安装并正在运行。我尝试过 process.GetProcessbyName,但遇到了 64 位与 32 位进程的问题。我也尝试过 ManagementObject,但我不断收到无效的对象路径。是否可以让服务只知道可执行文件的路径?
我只知道可执行文件的名称和路径。可执行文件也可能有多个版本,每个版本都有不同的服务名称,而我没有。
最佳答案
这里是如何检查服务是否安装,以及获取服务的状态
public static string CheckService(string ServiceName)
{
//check service
var services = ServiceController.GetServices();
string serviceStatu = string.Empty;
bool isServiceExist = false;
foreach (var s in services)
{
if (s.ServiceName == ServiceName)
{
serviceStatu = "Service installed , current status: " + s.Status;
isServiceExist = true;
}
}
if (!isServiceExist)
{
serviceStatu= "Service is not installed";
}
return serviceStatu;
}
Console.WriteLine(CheckService("服务名称"));
您需要将System.ServiceProcess
添加到项目引用
关于c# - 以编程方式检查 Windows 服务是否正在运行 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46572610/