這是我翻譯的第二篇文章,相對前一篇(Introducing ASP.NET 2.0 (ASP.NET 2.0 簡介) )而言自我感覺好了很多,但還有不足,在以後的翻譯中,還需改正.
C#.NET的服務管理員
作者:Sateesh Kumar 2006-5-31
譯者:Sparon 2006-5-31
這篇章將會交你如何建立Web應用程式來管理機器上的服務。
原文地址:http://www.c-sharpcorner.com/UploadFile/satisharveti/tocontrolservicesrunninginasystem05302006100035AM/tocontrolservicesrunninginasystem.aspx
大家知道有許多後台啟動並執行程式是不為我們所知的,我們可以通過開始菜單中的運行services.msc來查看這些服務.
我將說明如何建立一個Web應用程式來管理機器上的服務。這個程式允許我們查看我們電腦上所有的服務,並且可以運行、停止或暫停服務。它還可以查看所有服務的詳細資料,比如路徑、狀態。這個程式可以在VS.NET 2003中建立。
首先建立一個C#web應用程式。命名為ServiceMgmt
頁面如下:
在這個頁面中有4個超級連結、1個dropdownlist和7個labels 。
在解決方案管理器中添加System.Management關聯。
下一步:
將這些代碼添加到Page_Load事件中:
ManagementClass class1=new ManagementClass("Win32_Service");
foreach(ManagementObject ob in class1.GetInstances())
{
ListItem item1=new ListItem();
item1.Text =ob.GetPropertyValue("Name").ToString();
item1.Value =ob.GetPropertyValue("Caption").ToString();
DropDownList1.Items.Add(item1);
}
這段代碼將載入機器上的所有服務到ComboBox中。
繼續添加方法:
private void showstatus()
{
int i=0;
ManagementClass class1=new ManagementClass("Win32_Service");
foreach(ManagementObject ob in class1.GetInstances())
{
if(ob.GetPropertyValue("State").ToString()=="Running")
{
i++;
}
if(ob.GetPropertyValue("Name").ToString()==DropDownList1.SelectedItem.Text.ToString())
{
Label2.Text ="Description : " +ob.GetPropertyValue("Description");
Label3.Text ="PathName : "+ob.GetPropertyValue("PathName");
Label4.Text ="ServiceType : " +ob.GetPropertyValue("ServiceType");
Label5.Text ="StartMode : "+ ob.GetPropertyValue("StartMode");
Label6.Text ="State : "+ob.GetPropertyValue("State");
}
}
Label7.Text =string.Empty;
Label7.Text ="Total Number of Services Running : " +i;
}
這段代碼實現將你選擇的服務的詳細資料顯示出來。
繼續添加方法:
private void servicemgmt(string status)
{
ManagementPath path=new ManagementPath();
path.Server=System.Environment.MachineName;
path.NamespacePath=@"root\CIMV2";
path.RelativePath="Win32_service.Name='"+DropDownList1.SelectedItem.Text.ToString()+"'";
ManagementObject service=new ManagementObject(path);
ManagementBaseObject temp= service.InvokeMethod(status,null,null);
}
這段代碼實現運行、停止或暫停、繼續服務。
拷貝這段代碼到Start LinkButton_Click事件:
servicemgmt("StartService");
showstatus();
拷貝這段代碼到Stop LinkButton_Click事件:
servicemgmt("StopService");
showstatus();
拷貝這段代碼到Pause LinkButton_Click事件:
servicemgmt("PauseService");
showstatus();
拷貝這段代碼到Continue LinkButton_Click事件:
servicemgmt("ResumeService");
showstatus();
到此為止,我們就可以通過IE控制我們機器上的服務了。
我希望這段代碼對大家有協助. 最後的結果會是這樣的:
全文代碼下載:ServiceMgmt.rar
附:wmiopennotepad.rar