类似的对于“停止服务”,其点击事件处理为
private void btnStopService_Click(object sender, EventArgs e)
{
if (bolServiceInstalled == false)
return;
using (System.ServiceProcess.ServiceController control = new System.ServiceProcess.ServiceController("MyFileSystemWatcher"))
{
if (control.Status == System.ServiceProcess.ServiceControllerStatus.Running)
{
control.Stop();
}
}
}
在这个处理过程中,若判断出服务状态为运行中,则调用控制器的Stop方法 来停止服务。在这里Stop方法内部只是通知操作系统停止指定的服务,它发送通知后立即返 回,不会等待服务停止后返回。
我们还在窗体上放置一个定时器控件,定时间隔为2 秒,用于根据服务的状态刷新工具条按钮状态,其定时事件处理为
private void myTimer_Tick(object sender, EventArgs e)
{
if (bolServiceInstalled == false)
return;
using (System.ServiceProcess.ServiceController control = new System.ServiceProcess.ServiceController("MyFileSystemWatcher"))
{
btnStartService.Enabled = (control.Status == System.ServiceProcess.ServiceControllerStatus.Stopped);
btnStopService.Enabled = (control.Status == System.ServiceProcess.ServiceControllerStatus.Running);
}
}
在这里我们创建了一个绑定到文件系统监控服务的ServiceController对象 ,然后根据它的Status状态来设置“启动服务”和“停止服务”按钮 的可用状态。
系统配置对话框 dlgConfig
在客户端主窗体中点击工具条的 “系统配置”按钮就会弹出系统设置对话框,该对话框的用户界面为
开发Windows Service程序(下)-c站">