提示用户windows服务停止

本文关键字:服务 windows 用户 提示 | 更新日期: 2023-09-27 17:50:52

我想给用户通知,如果窗口服务被停止。如何在c#中获得status:start/stop ?

提示用户windows服务停止

首先,如果您使用的是窗口服务,那么您已经在您的项目中包含了System.ServiceProcess的引用。

要获取windows服务的状态,你必须遵循以下步骤。

步骤1:包含程序集

using System.ServiceProcess;

步骤2:

创建你的服务

private ServiceController yourService = new ServiceController("yourService");

步骤3:

if (yourService.Status == ServiceControllerStatus.Running)
        this.labelStatus.Text = "Running...";
else if (yourService.Status == ServiceControllerStatus.Stopped)
        this.labelStatus.Text = "Stopped.";
else if (yourService.Status == ServiceControllerStatus.StartPending)
        this.labelStatus.Text = "Starting...";
else if (yourService.Status == ServiceControllerStatus.StopPending)
        this.labelStatus.Text = "Stopping...";
else if (yourService.Status == ServiceControllerStatus.Paused || yourService.Status == ServiceControllerStatus.PausePending)
        this.labelStatus.Text = "Pause";
else
        this.labelStatus.Text = "Processing";

labelStatus只是一个标签,您正在设置windows服务状态以显示给用户。

这是你可以很容易地做到这一点,并处理任何类型的windows服务的状态。

在这些if else块中,您可以根据服务状态做任何您想做的事情。你可以根据窗口服务的启动和停止状态来显示打开和关闭图标。

您可以使用ServiceController组件来连接和控制现有服务的行为。当您创建ServiceController类的实例时,您可以设置它的属性,以便它与特定的Windows服务进行交互。然后,您可以使用该类启动、停止和以其他方式操作服务。查看此处查看如何添加它,查看此处查看详细工作。

试试这个

using System.ServiceProcess;    
ServiceController sc = new ServiceController(SERVICENAME);    
if (sc.Status == ServiceControllerStatus.Stopped)
{
    // do anything
}