100165809.htm

来自「C#高级编程(第三版),顶死你们。。 。up」· HTM 代码 · 共 974 行 · 第 1/4 页

HTM
974
字号
  </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'>ServicesDependentOn</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>
  </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'>DisplayName</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>
  </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'>MachineName</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>
  </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'>ServiceName</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>
  </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'>ServiceType</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
  style='font-family:宋体;color:black'>服务可以运行在共享的进程中。在共享的进程中,多个服务使用同一进程</span><span
  lang=EN-US style='color:black'>(Win32ShareProcess)</span><span
  style='font-family:宋体;color:black'>,此外,服务也可以运行在只包含一个服务的进程</span><span
  lang=EN-US style='color:black'>(Win32OwnProcess)</span><span
  style='font-family:宋体;color:black'>中。如果服务可以与桌面交互,则类型就是</span><span
  lang=EN-US style='color:black'>InteractiveProcess</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'>Status</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'>(</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'>ServiceControllerStatus</span><span style='font-family:
  宋体;color:black'>枚举中定义</span></p>
  </td>
 </tr>
</table>

</div>

<p class=MsoNormal style='margin-top:8.15pt'><span style='font-family:宋体;
color:black'>在上面的应用程序中,使用</span><span lang=EN-US style='color:black'>DisplayName</span><span
style='font-family:宋体;color:black'>、</span><span lang=EN-US style='color:black'>ServiceName</span><span
style='font-family:宋体;color:black'>、</span><span lang=EN-US style='color:black'>ServiceType</span><span
style='font-family:宋体;color:black'>和</span><span lang=EN-US style='color:black'>Status</span><span
style='font-family:宋体;color:black'>属性显示服务信息。此外,</span><span lang=EN-US
style='color:black'>CanPauseAndContinue</span><span style='font-family:宋体;
color:black'>和</span><span lang=EN-US style='color:black'>CanStop</span><span
style='font-family:宋体;color:black'>用于启用和禁用</span><span lang=EN-US
style='color:black'>Pause</span><span style='font-family:宋体;color:black'>、</span><span
lang=EN-US style='color:black'>Continue</span><span style='font-family:宋体;
color:black'>和</span><span lang=EN-US style='color:black'>Stop</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'>ServiceController</span><span style='font-family:
宋体;color:black'>类返回的是数字,而显示时却要使用字符串代替数字。为了把状态和类型显示为字符串,需要使用两个帮助函数</span><span
lang=EN-US style='color:black'>SetServiceStatus()</span><span style='font-family:
宋体;color:black'>和</span><span lang=EN-US style='color:black'>GetServiceTypeName()</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'>SetServiceStatus()</span><span style='font-family:
宋体;color:black'>返回一个字符串,表示服务的类型。根据传送给</span><span lang=EN-US>ServiceType</span><span
style='font-family:宋体'>参数的类型返回一个字符串。从</span><span lang=EN-US>ServiceController.ServiceType</span><span
style='font-family:宋体'>属性中得到的</span><span lang=EN-US>ServiceType</span><span
style='font-family:宋体'>代表一组标记,使用按位</span><span lang=EN-US>OR</span><span
style='font-family:宋体'>运算符,可以把这组标记组合在一起。</span><span lang=EN-US>InteractiveProcess</span><span
style='font-family:宋体'>位可以与</span><span lang=EN-US>Win32OwnProcess</span><span
style='font-family:宋体'>和</span><span lang=EN-US>Win32ShareProcess</span><span
style='font-family:宋体'>一起设置。首先,在检查其他的值之前,一定要先检查</span><span lang=EN-US>InteractiveProcess</span><span
style='font-family:宋体'>位以前是否设置过。使用该服务,返回的字符串是“</span><span lang=EN-US>Win 32
Service Process</span><span style='font-family:宋体'>”或“</span><span lang=EN-US>Win
32 Shared Process</span><span style='font-family:宋体'>”。</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected string
GetServiceTypeName(ServiceType type)</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
string serviceType = &quot;&quot;;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if ((type &amp; ServiceType.InteractiveProcess) != 0)</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
serviceType = &quot;Interactive &quot;;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type -= ServiceType.InteractiveProcess;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
switch (type)</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
case ServiceType.Adapter:</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
serviceType += &quot;Adapter&quot;;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
case ServiceType.FileSystemDriver:</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
case ServiceType.KernelDriver:</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
case ServiceType.RecognizerDriver:</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
serviceType += &quot;Driver&quot;;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
case ServiceType.Win32OwnProcess:</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
serviceType += &quot;Win32 Service Process&quot;;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
case ServiceType.Win32ShareProcess:</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
serviceType += &quot;Win32 Shared Process&quot;;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
default:</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
serviceType += &quot;unknown type &quot; + type.ToString();</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return serviceType;</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}</span></p>

<p class=MsoNormal><span style='font-family:宋体'>方法</span><span lang=EN-US
style='color:black'>SetServiceStatus()</span><span style='font-family:宋体;
color:black'>在文本框</span><span lang=EN-US style='color:black'>textServiceStatus</span><span
style='font-family:宋体;color:black'>中设置服务的当前状态。根据服务的状态,可以启用或禁用</span><span
lang=EN-US style='color:black'>Start</span><span style='font-family:宋体;
color:black'>、</span><span lang=EN-US style='color:black'>Stop</span><span
style='font-family:宋体;color:black'>、</span><span lang=EN-US style='color:black'>Pause</span><span
style='font-family:宋体;color:black'>和</span><span lang=EN-US style='color:black'>Continue</span><span
style='font-family:宋体;color:black'>按钮。</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected void
SetServiceStatus(ServiceController controller) </span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
buttonStart.Enabled = true;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
buttonStop.Enabled = true;</span></p>

<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
buttonPause.Enabled = true;</span></p>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?