Form1.cs
Upload User: chinafred
Upload Date: 2007-08-14
Package Size: 10127k
Code Size: 7k
Category:

ADO-ODBC

Development Platform:

C#

  1. using System;
  2. using System.Drawing;
  3. using System.Collections;
  4. using System.ComponentModel;
  5. using System.Windows.Forms;
  6. using System.Data;
  7. using System.Diagnostics;
  8. namespace ch4_6
  9. {
  10. /// <summary>
  11. /// Form1 的摘要说明。
  12. /// </summary>
  13. public class Form1 : System.Windows.Forms.Form
  14. {
  15. private System.Windows.Forms.Panel panel1;
  16. private System.Windows.Forms.ListView listView1;
  17. private System.Windows.Forms.ColumnHeader columnHeader1;
  18. private System.Windows.Forms.ColumnHeader columnHeader2;
  19. private System.Windows.Forms.ColumnHeader columnHeader3;
  20. private System.Windows.Forms.ColumnHeader columnHeader4;
  21. private System.Windows.Forms.ColumnHeader columnHeader5;
  22. private System.Windows.Forms.ColumnHeader columnHeader6;
  23. private System.Windows.Forms.ColumnHeader columnHeader7;
  24. private System.Windows.Forms.ColumnHeader columnHeader8;
  25. private System.Windows.Forms.Button button1;
  26. private System.Windows.Forms.ContextMenu contextMenu1;
  27. private System.Windows.Forms.MenuItem menuItem1;
  28. private System.ComponentModel.IContainer components;
  29. private EventLogEntryCollection  eventCollection;
  30. public Form1()
  31. {
  32. //
  33. // Windows 窗体设计器支持所必需的
  34. //
  35. InitializeComponent();
  36. LoadEventLog();
  37. //
  38. // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
  39. //
  40. }
  41. private void LoadEventLog()
  42. {
  43.     //构造一个日志对象
  44. EventLog  systemEvent=new EventLog();
  45. //说明这个日志是系统日志
  46. systemEvent.Log="System";
  47. //获得系统日志的记录集合
  48.     eventCollection=systemEvent.Entries;
  49. //记录的长度
  50. int length=eventCollection.Count;
  51. for (int i=0;i<length;i++)
  52. {
  53. EventLogEntry entry=eventCollection[length-i-1];
  54.     //构造一个ListViewItem的子项
  55. string[] subItems={
  56.       //类型
  57.   entry.EntryType.ToString(),
  58.   //日期
  59.   entry.TimeGenerated.ToLongDateString(),
  60.   //时间
  61.                       entry.TimeGenerated.ToLongTimeString(),
  62.   //来源
  63.   entry.Source,
  64.   //分类
  65.   entry.Category,
  66.   //事件
  67.   entry.EventID.ToString(),
  68.   //用户
  69.                       entry.UserName,
  70.   //计算机名
  71.   entry.MachineName
  72.   };
  73. ListViewItem  item=new ListViewItem(subItems);
  74. //添加记录
  75. this.listView1.Items.Add(item);
  76. }
  77. }
  78. /// <summary>
  79. /// 清理所有正在使用的资源。
  80. /// </summary>
  81. protected override void Dispose( bool disposing )
  82. {
  83. if( disposing )
  84. {
  85. if (components != null) 
  86. {
  87. components.Dispose();
  88. }
  89. }
  90. base.Dispose( disposing );
  91. }
  92. #region Windows Form Designer generated code
  93. /// <summary>
  94. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  95. /// 此方法的内容。
  96. /// </summary>
  97. private void InitializeComponent()
  98. {
  99. this.panel1 = new System.Windows.Forms.Panel();
  100. this.listView1 = new System.Windows.Forms.ListView();
  101. this.columnHeader1 = new System.Windows.Forms.ColumnHeader();
  102. this.columnHeader2 = new System.Windows.Forms.ColumnHeader();
  103. this.columnHeader3 = new System.Windows.Forms.ColumnHeader();
  104. this.columnHeader4 = new System.Windows.Forms.ColumnHeader();
  105. this.columnHeader5 = new System.Windows.Forms.ColumnHeader();
  106. this.columnHeader6 = new System.Windows.Forms.ColumnHeader();
  107. this.columnHeader7 = new System.Windows.Forms.ColumnHeader();
  108. this.columnHeader8 = new System.Windows.Forms.ColumnHeader();
  109. this.button1 = new System.Windows.Forms.Button();
  110. this.contextMenu1 = new System.Windows.Forms.ContextMenu();
  111. this.menuItem1 = new System.Windows.Forms.MenuItem();
  112. this.panel1.SuspendLayout();
  113. this.SuspendLayout();
  114. // 
  115. // panel1
  116. // 
  117. this.panel1.AutoScroll = true;
  118. this.panel1.Controls.AddRange(new System.Windows.Forms.Control[] {
  119.  this.listView1});
  120. this.panel1.Location = new System.Drawing.Point(24, 16);
  121. this.panel1.Name = "panel1";
  122. this.panel1.Size = new System.Drawing.Size(432, 296);
  123. this.panel1.TabIndex = 0;
  124. // 
  125. // listView1
  126. // 
  127. this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
  128. this.columnHeader1,
  129. this.columnHeader2,
  130. this.columnHeader3,
  131. this.columnHeader4,
  132. this.columnHeader5,
  133. this.columnHeader6,
  134. this.columnHeader7,
  135. this.columnHeader8});
  136. this.listView1.ContextMenu = this.contextMenu1;
  137. this.listView1.Dock = System.Windows.Forms.DockStyle.Fill;
  138. this.listView1.FullRowSelect = true;
  139. this.listView1.MultiSelect = false;
  140. this.listView1.Name = "listView1";
  141. this.listView1.Size = new System.Drawing.Size(432, 296);
  142. this.listView1.TabIndex = 0;
  143. this.listView1.View = System.Windows.Forms.View.Details;
  144. // 
  145. // columnHeader1
  146. // 
  147. this.columnHeader1.Text = "类型";
  148. // 
  149. // columnHeader2
  150. // 
  151. this.columnHeader2.Text = "日期";
  152. // 
  153. // columnHeader3
  154. // 
  155. this.columnHeader3.Text = "时间";
  156. // 
  157. // columnHeader4
  158. // 
  159. this.columnHeader4.Text = "来源";
  160. // 
  161. // columnHeader5
  162. // 
  163. this.columnHeader5.Text = "分类";
  164. // 
  165. // columnHeader6
  166. // 
  167. this.columnHeader6.Text = "事件";
  168. // 
  169. // columnHeader7
  170. // 
  171. this.columnHeader7.Text = "用户";
  172. // 
  173. // columnHeader8
  174. // 
  175. this.columnHeader8.Text = "计算机";
  176. // 
  177. // button1
  178. // 
  179. this.button1.Location = new System.Drawing.Point(384, 336);
  180. this.button1.Name = "button1";
  181. this.button1.TabIndex = 1;
  182. this.button1.Text = "更新日志";
  183. this.button1.Click += new System.EventHandler(this.button1_Click);
  184. // 
  185. // contextMenu1
  186. // 
  187. this.contextMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  188.  this.menuItem1});
  189. // 
  190. // menuItem1
  191. // 
  192. this.menuItem1.Index = 0;
  193. this.menuItem1.Text = "事件详细信息";
  194. this.menuItem1.Click += new System.EventHandler(this.menuItem1_Click);
  195. // 
  196. // Form1
  197. // 
  198. this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
  199. this.ClientSize = new System.Drawing.Size(480, 389);
  200. this.Controls.AddRange(new System.Windows.Forms.Control[] {
  201.   this.button1,
  202.   this.panel1});
  203. this.Name = "Form1";
  204. this.Text = "系统日志查看";
  205. this.panel1.ResumeLayout(false);
  206. this.ResumeLayout(false);
  207. }
  208. #endregion
  209. /// <summary>
  210. /// 应用程序的主入口点。
  211. /// </summary>
  212. [STAThread]
  213. static void Main() 
  214. {
  215. Application.Run(new Form1());
  216. }
  217. private void button1_Click(object sender, System.EventArgs e)
  218. {
  219.             //请空记录
  220. this.listView1.Items.Clear();   
  221. //更新日志
  222. LoadEventLog();
  223. }
  224. private void menuItem1_Click(object sender, System.EventArgs e)
  225. {
  226.      //获取指定记录在listView中的索引
  227.  int i=this.listView1.SelectedItems[0].Index;
  228.  //获取记录的总数目
  229.          int length=this.eventCollection.Count;
  230.  //获取指定记录的消息
  231.  string message=eventCollection[length-i-1].Message;
  232.  //弹出消息框
  233.          MessageBox.Show("这条日志的详细信息是: "+message,"提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
  234. }
  235. }
  236. }