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

页面如下:

在这个页面中有4个超级链接、1dropdownlist7labels

如图所示在解决方案管理器中添加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

posted @ 2006-06-01 11:13  SPARON  阅读(3087)  评论(4编辑  收藏  举报