ServiceController是個不錯用的東西,除了可以取得Window Service的資訊,還可以停止或啟用服務等,算是很便利的功能.
ServiceController是個不錯用的東西,除了可以取得Window Service的資訊,還可以停止或啟用服務等,算是很便利的功能.
使用方式也很簡單,首先要先把System.ServiceProcess加入參考,這個不是預設就會加入的.
再來就可以直接拿ServiceController這個Class來用.
ServiceController[] sc=ServiceController.GetServices();
這樣就可以取得本機所有的Window Services,GetService(string MachineName)也可以取得別台電腦的資訊,但當然要有權限.
用TreeView來Demo Window Services的資訊.
treeView1.BeginUpdate();
treeView1.Nodes.Clear();
foreach (ServiceController s in sc)
{
//取得服務名稱
TreeNode tn = treeView1.Nodes.Add(s.DisplayName);
if (s.Status == ServiceControllerStatus.Stopped)
{//如果服務是停止的,那就用紅字顯示
tn.ForeColor = Color.Red;
}
tn.ToolTipText = s.Status.ToString();//ToolTip顯示服務狀態
foreach (ServiceController d in s.ServicesDependedOn)
{//看一下這個服務是依賴那些服務
TreeNode t = tn.Nodes.Add(d.DisplayName);
if (d.Status == ServiceControllerStatus.Stopped)
{
t.ForeColor = Color.Red;
}
t.ToolTipText = d.Status.ToString();
}
}
treeView1.Sort();
treeView1.EndUpdate();
以下就是展示出來的樣子.
用ServiceController也可以對服務做停止,暫停,啟動等,也可以用WaitForStatus等服務到指定的狀態.
其它就參考MSDN上的說明 :