简单介绍 ServiceController 类的使用方法
ServiceController 类位于 .NET Framework 类库、System.ServiceProcess 命名空间,使用时需要添加对 System.ServiceProcess.dll 的引用。
1. 常用的属性和方法#
1.1 属性#
| 名称 | 说明 |
|---|---|
CanPauseAndContinue |
获取一个值,该值指示是否可以暂停和继续服务 |
CanStop |
获取一个值,该值指示服务在启动后是否可以停止 |
ServiceName |
获取或设置对此实例引用的服务进行标识的名称 |
Status |
获取由此实例引用的服务的状态 |
1.2 ServiceControllerStatus 枚举#
| 成员名称 | 说明 |
|---|---|
ContinuePending |
服务即将继续 |
Paused |
服务已暂停 |
PausePending |
服务即将暂停 |
Running |
服务正在运行 |
StartPending |
服务正在启动 |
Stopped |
服务未运行 |
StopPending |
服务正在停止 |
1.3 方法#
| 名称 | 说明 |
|---|---|
GetDevices() |
检索本地计算机上的设备驱动程序服务 |
GetServices() |
检索本地计算机上的所有服务(设备驱动程序服务除外) |
Close() |
断开此 ServiceController 实例与服务的连接,并释放此实例分配的所有资源 |
ExecuteCommand(Int32) |
对服务执行自定义命令 |
Refresh() |
通过将属性重置为其当前值来刷新属性值 |
Start() |
启动服务 |
Pause() |
挂起服务的操作 |
Continue() |
在服务暂停后继续该服务 |
Stop() |
停止该服务以及任何依赖于该服务的服务 |
2. 如何获得管理员权限#
对服务的管理需要系统管理员权限,在程序中获取管理员权限需要配置 app.manifest 文件。
app.manifest 文件在 Properties 目录下。如果没有,请按以下步骤操作:
- 在 VS解决方案浏览器 右键项目属性
- 选择 Security(安全) 选项
- 勾选 Enable ClickOnce security settings(启用ClickOnce安全设置) 选项
- VS 会在
Properties目录下生成app.manifest文件 - 取消勾选 Enable ClickOnce security settings(启用ClickOnce安全设置) 选项
修改 app.manifest 文件,将
<requestedExecutionLevel level="asInvoker" uiAccess="false" />改为:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />之后保存,重新编译。
运行程序后会弹出 用户帐户控制 对话框,点击确定,程序将获得管理员权限;点击取消,程序将退出。