100165809.htm
来自「C#高级编程(第三版),顶死你们。。 。up」· HTM 代码 · 共 974 行 · 第 1/4 页
HTM
974 行
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
32.5.5 ServiceController类
</title></head>
<body>
<div class="area">
<div class="col1">
<div class="lineBlue">
</div>
<!-- title -->
<div class="arcTitle">
<h1>
<a href="../16">
C#高级编程(第3版)【全文连载】
</a>
</h1>
<div style="text-align: center; font-size: 15px">
<a href="100165809.htm">
32.5.5 ServiceController类
</a>
</div>
<div style="text-align: center; font-size: 15px">
<a class="url" href="../../default.htm">http://book.csdn.net/</a>
2006-10-13 14:41:00
</div>
<div style="margin: 0px auto; width: 700px; border: solid 1px #0b5f98;">
<div style="float: left; width: 16px; background-color: #0b5f98; color: White; padding: 1px;">
图书导读
</div>
<div style="float: right; width: 670px; text-align: left; line-height: 16pt; padding-left: 2px">
<!--导读-->
<h1 id="divCurrentNode" style="color: #b83507; width: 100%; text-align: left; font-size: 12px; padding-left: 2px">当前章节:<a href='100165809.htm'><font color='red'>32.5.5 ServiceController类</font></a></h1>
<div id="divRelateNode" style="padding-left: 2px">
<div style='float:left;width:49%'>·<a href='100165806.htm'>32.5.2 net.exe</a></div><div style='float:right;width:49%'>·<a href='100165807.htm'>32.5.3 sc.exe</a></div><div style='float:left;width:49%'>·<a href='100165808.htm'>32.5.4 Visual Studio .NET Server Explorer</a></div><div style='float:right;width:49%'>·<a href='100165810.htm'>32.6 故障排除</a></div><div style='float:left;width:49%'>·<a href='100165811.htm'>32.6.1 交互式服务</a></div><div style='float:right;width:49%'>·<a href='100165812.htm'>32.6.2 事件日志</a></div></div>
</div>
</div>
</div>
<!-- main -->
<div id="main">
<div id="text"> <link href="css.css" rel="stylesheet" type="text/css" /><h3 style='margin-top:8.15pt;margin-right:0cm;FTEL:8.15pt;margin-left:
0cm'><span lang=EN-US>32.5.5 ServiceController</span><span
style='font-family:黑体'>类</span></h3>
<p class=MsoNormal><span style='font-family:宋体;color:black;letter-spacing:.1pt'>下面创建一个小的</span><span
lang=EN-US style='color:black;letter-spacing:.1pt'>Windows</span><span
style='font-family:宋体;color:black;letter-spacing:.1pt'>应用程序,该应用程序使用</span><span
lang=EN-US style='color:black;letter-spacing:.1pt'>ServiceController</span><span
style='font-family:宋体;color:black;letter-spacing:.1pt'>类监视和控制</span><span
lang=EN-US style='color:black;letter-spacing:.1pt'>Windows</span><span
style='font-family:宋体;color:black;letter-spacing:.1pt'>服务。</span></p>
<p class=MsoNormal><span style='font-family:宋体;color:black'>创建一个</span><span
lang=EN-US style='color:black;letter-spacing:.1pt'>Windows</span><span
style='font-family:宋体;color:black;letter-spacing:.1pt'>窗体应用程序,</span><span
style='font-family:宋体;color:black'>这个应用程序的用户界面包含一个显示所有服务的列表框、</span><span
lang=EN-US style='color:black'>4</span><span style='font-family:宋体;color:black'>个文本框</span><span
lang=EN-US style='color:black'>(</span><span style='font-family:宋体;color:black'>分别用于显示服务的显示名称、状态、类型和名称</span><span
lang=EN-US style='color:black'>)</span><span style='font-family:宋体;color:black'>,以及</span><span
lang=EN-US style='color:black'>4</span><span style='font-family:宋体;color:black'>个发送控制事件的按钮,如图</span><span
lang=EN-US style='color:black'>32-18</span><span style='font-family:宋体;
color:black'>所示。</span></p>
<p align=center><span lang=EN-US><img width=312 height=189
src="32/image019.jpg"></span></p>
<p align=center style='FTEL:8.15pt'><span style='font-family:宋体;color:black'>图</span><span
lang=EN-US style='color:black'> 32-18</span></p>
<p class=MsoNormal><span style='font-family:宋体;color:black'>这里使用了</span><span
lang=EN-US style='color:black'>System.ServiceProcess.ServiceController</span><span
style='font-family:宋体;color:black'>类,因此必须引用</span><span lang=EN-US
style='color:black'>System.Service Process.dll</span><span style='font-family:
宋体;color:black'>。</span></p>
<p class=MsoNormal><span style='font-family:宋体;color:black'>这里还执行了</span><span
lang=EN-US style='color:black'>RefreshServiceList()</span><span
style='font-family:宋体;color:black'>方法,用下面的代码在列表框中列出所有的服务。这个方法是在</span><span
lang=EN-US style='color:black'>ServiceControlForm</span><span style='font-family:
宋体;color:black'>类的构造函数中调用的。该方法用所有服务的显示名称填写</span><span lang=EN-US
style='color:black'>listbox</span><span style='font-family:宋体;color:black'>。</span><span
lang=EN-US style='color:black'>GetServics()</span><span style='font-family:
宋体;color:black'>是</span><span lang=EN-US style='color:black'>ServiceController</span><span
style='font-family:宋体;color:black'>类的一个静态方法,它返回一个代表所有</span><span lang=EN-US
style='color:black'>Windows</span><span style='font-family:宋体;color:black'>服务的</span><span
lang=EN-US style='color:black'>ServiceController</span><span style='font-family:
宋体;color:black'>数组。</span><span lang=EN-US style='color:black'>ServiceController</span><span
style='font-family:宋体;color:black'>类也有一个静态的方法</span><span lang=EN-US
style='color:black'>GetDevices()</span><span style='font-family:宋体;color:black'>,它返回一个代表所有设备驱动器的</span><span
lang=EN-US style='color:black'>ServiceController</span><span style='font-family:
宋体;color:black'>数组。</span></p>
<p class=MsoBlockText style='margin-left:0cm;FTEL:21.25pt'><span
style='font-size:10.5pt;font-family:宋体;color:black;letter-spacing:0pt;
font-style:normal'>把</span><span lang=EN-US style='font-size:10.5pt;font-family:
"Times New Roman";color:black;letter-spacing:0pt;font-style:normal'>ServiceController.
GetServics()</span><span style='font-size:10.5pt;font-family:宋体;color:black;
letter-spacing:0pt;font-style:normal'>绑定到</span><span lang=EN-US
style='font-size:10.5pt;font-family:"Times New Roman";color:black;letter-spacing:
0pt;font-style:normal'>ListBox</span><span style='font-size:10.5pt;font-family:
宋体;color:black;letter-spacing:0pt;font-style:normal'>上,填充列表框:</span></p>
<p class=2 style='margin-top:8.15pt;margin-right:0cm;FTEL:0cm;
margin-left:21.45pt;FTEL:.0001pt;FTEL:18.45pt'><span
lang=EN-US> private
System.ServiceProcess.ServiceController[] services;</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US> </span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
public ServiceControlForm()</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
{</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
//</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
// Required for Windows Form Designer support</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
//</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US> </span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
InitializeComponent();</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
RefreshServiceList();</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
}</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
protected void RefreshServiceList()</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
{</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
services = ServiceController.GetServices();</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
listBoxServices.DisplayMember = "DisplayName";</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
listBoxServices.DataSource = services;</span></p>
<p class=2 style='margin-top:0cm;margin-right:0cm;FTEL:8.15pt;
margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
}</span></p>
<p class=MsoNormal><span style='font-family:宋体;color:black'>现在,所有的</span><span
lang=EN-US style='color:black'>Windows</span><span style='font-family:宋体;
color:black'>服务都显示在列表框中。接下来,必须获取服务的信息,把它们显示在文本框中。</span></p>
<h4 style='FTEL:21.45pt'><span lang=EN-US>1. </span><span
style='font-family:黑体'>服务的监视</span></h4>
<p class=MsoNormal><span style='font-family:宋体;color:black'>使用</span><span
lang=EN-US style='color:black'>ServiceController</span><span style='font-family:
宋体;color:black'>类,可以获取每一个服务的信息。</span><span lang=EN-US style='color:black'>ServiceController</span><span
style='font-family:宋体;color:black'>类的下列属性可以用于获取服务的信息,如表</span><span lang=EN-US
style='color:black'>32-4</span><span style='font-family:宋体;color:black'>所示。</span></p>
<p class=a5 style='margin-top:8.15pt'><span style='font-family:黑体;color:black'>表</span><span
lang=EN-US style='color:black'> 32-4</span></p>
<div align=center>
<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
style='margin-left:-7.95pt;border-collapse:collapse;border:none'>
<tr style='page-break-inside:avoid'>
<td width=156 valign=top style='width:117.3pt;border:solid windowtext 1.0pt;
border-left:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=a2><span style='font-family:黑体;color:black'>属</span><span
lang=EN-US style='color:black'> </span><span
style='font-family:黑体;color:black'>性</span></p>
</td>
<td width=428 valign=top style='width:321.3pt;border-top:solid windowtext 1.0pt;
border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=a2><span style='font-family:黑体;color:black'>描</span><span
lang=EN-US style='color:black'> </span><span
style='font-family:黑体;color:black'>述</span></p>
</td>
</tr>
<tr>
<td width=156 valign=top style='width:117.3pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=a4 style='margin-left:10.7pt'><span lang=EN-US style='color:black'>CanPauseAndContinue</span></p>
</td>
<td width=428 valign=top style='width:321.3pt;border:none;border-bottom:solid windowtext 1.0pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=a4 style='margin-left:10.7pt'><span
style='font-family:宋体;color:black'>如果暂停和继续服务的请求可以发送给服务,则这个属性返回</span><span
lang=EN-US style='color:black'>true</span></p>
</td>
</tr>
<tr>
<td width=156 valign=top style='width:117.3pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=a4 style='margin-left:10.7pt'><span lang=EN-US style='color:black'>CanShutdown</span></p>
</td>
<td width=428 valign=top style='width:321.3pt;border:none;border-bottom:solid windowtext 1.0pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=a4 style='margin-left:10.7pt'><span
style='font-family:宋体;color:black'>如果服务有系统关闭的处理程序,则它的值为</span><span
lang=EN-US style='color:black'>true</span></p>
</td>
</tr>
<tr>
<td width=156 valign=top style='width:117.3pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=a4 style='margin-left:10.7pt'><span lang=EN-US style='color:black'>CanStop</span></p>
</td>
<td width=428 valign=top style='width:321.3pt;border:none;border-bottom:solid windowtext 1.0pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=a4 style='margin-left:10.7pt'><span
style='font-family:宋体;color:black'>如果服务是可以停止的,则它的值为</span><span lang=EN-US
style='color:black'>true</span></p>
</td>
</tr>
<tr>
<td width=156 valign=top style='width:117.3pt;border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=a4 style='margin-left:10.7pt'><span lang=EN-US style='color:black'>DependentServices</span></p>
</td>
<td width=428 valign=top style='width:321.3pt;border:none;border-bottom:solid windowtext 1.0pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=a4 style='margin-left:10.7pt'><span
style='font-family:宋体;color:black'>它返回一个依存服务的集合。如果服务停止,则所有依存的服务都预先停止</span></p>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?