日期:2013-09-30  浏览次数:20543 次

WROXControlLib
Step one is to set up a Web Control Library. Open Visual Studio .NET and choose a Web Control Library project. Add three new Custom Web Controls to the project named evenlog.cs, process.cs, and services.cs. Add System.ServiceProcess as a reference to the project by right-clicking References in the Solutions Explorer.
eventlog.cs
Events are accessed through the System.Diagnostics assembly. Use this assembly by making a reference at the top of your class.
Write to the event log by calling EventLog.WriteEntry(). The WriteEntry() method provides many parameters such as the type of event (info, error, etc.), the source of the event (our assembly), and the message of the event.
Read from the event log by calling EventLog().Entries to obtain the collection of events from the specified machine. This method may be called with parameters such as log type (application, system, security), and machine name.
The code below requests the collection of events and loops through them with a for statement. Notice how the collection is called with a machine and log type, that is set by the client application. The collection returns the earliest event first by default; the log must be turned around to view the newest event first. Reverse the order by iterating through the collection backwards. Print the content out to the client application using the HTMLTextWriter. HTMLTextWriter is the default parameter passed into a custom control. Let's take a look at the code for eventlog.cs:
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Diagnostics;          //Add This Reference
public class eventlog : System.Web.UI.WebControls.WebControl
{
   private string logType      = "Application";
   private string machine      = "";

   //Machine is a Property that is Set by the Client
   public string Machine
   {
      get
      {
         return machine;
      }

      set
      {
         machine = value;
      }
   }

   protected override void Render(HtmlTextWriter doc)
   {      
      //Call the Collection of Events
      EventLogEntryCollection objEventCol = new EventLog(logType,machine).Entries;

      //Loop Through the Collection of Events
      for(int iCount<objEventCol.Count;iCount=objEventCol.Count; iCount>=0; iCount++)
      {

         //Write to the Document
         doc.Write(objEventCol.EntryType.ToString() + " - ");
         doc.Write(objEventCol[i].Source + "<br>");
         doc.Write(objEventCol[i].Message + "<p>");
      }
   }
}
process.cs
Processes may be viewed and stopped using the System.Diagnostics assembly. After referencing the assembly at the top of the class file, call Process.GetProcesses() to retrieve the collection of running processes. Specify