天天看點

Service Management in C#.NET(C#.NET的服務管理器)

  這是我翻譯的第二篇文章,相對前一篇(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

頁面如下:

Service Management in C#.NET(C#.NET的服務管理器)

在這個頁面中有4個超級連結、1個dropdownlist和7個labels 。

如圖所示在解決方案管理器中添加System.Management關聯。

Service Management in C#.NET(C#.NET的服務管理器)

下一步:

Service Management in C#.NET(C#.NET的服務管理器)

将這些代碼添加到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;

          [email protected]"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控制我們機器上的服務了。

我希望這段代碼對大家有幫助. 最後的結果會是這樣的:

Service Management in C#.NET(C#.NET的服務管理器)

全文代碼下載下傳:ServiceMgmt.rar

附:wmiopennotepad.rar

轉載于:https://www.cnblogs.com/sparon/archive/2006/06/01/414676.html

c#