C#捕捉进程开始和结束事件
2011-11-02 18:35
471 查看
通过C#捕捉进程开始和结束事件,禁止notepad.exe运行。这比用钩子的代码少多了。但我测试时,偶尔有事件被漏掉的情况。要求不太苛刻的地方,还是可以用用的。
本文出自 “GONE WITH THE WIND” 博客,请务必保留此出处http://h2appy.blog.51cto.com/609721/704270
using System; using System.Management; class Process { public static void Main() { ManagementEventWatcher startWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace")); startWatch.EventArrived += new EventArrivedEventHandler(startWatch_EventArrived); startWatch.Start(); ManagementEventWatcher stopWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace")); stopWatch.EventArrived += new EventArrivedEventHandler(stopWatch_EventArrived); stopWatch.Start(); Console.WriteLine("Press ENTER to exit"); Console.ReadLine(); startWatch.Stop(); stopWatch.Stop(); } static void stopWatch_EventArrived(object sender, EventArrivedEventArgs e) { Console.WriteLine("Process stopped: {0}", e.NewEvent.Properties["ProcessName"].Value); } static void startWatch_EventArrived(object sender, EventArrivedEventArgs e) { string name = e.NewEvent.Properties["ProcessName"].Value.ToString(); int id = Convert.ToInt32(e.NewEvent.Properties["ProcessId"].Value); Console.WriteLine("Process started: {0}", name); if (name == "notepad.exe") { System.Diagnostics.Process.GetProcessById(id).Kill(); } } }
本文出自 “GONE WITH THE WIND” 博客,请务必保留此出处http://h2appy.blog.51cto.com/609721/704270
相关文章推荐
- C#捕捉进程开始和结束事件
- 初学C#网络编程(二)处理进程结束时事件
- C#得到系统进程和结束某个指定的进程
- 捕捉DataGrid的双击事件(C#版本)
- C#中如何结束Excel (Office)进程
- C#.NET常见问题(FAQ)-如何捕捉窗体关闭的事件,弹窗确认是否退出
- 捕捉DataGrid的双击事件(C#版本)
- 捕捉DataGrid的双击事件(C#版本)
- 【转自Mgen】 .NET(C#):谈谈各种结束进程的方法
- NSSlider实现捕捉滑动开始时刻和结束时刻的方法,以及进行点击跳转
- C#获取指定月指定周的日期范围 根据当前时间获取本月开始日期和结束日期
- C#各种结束进程的方法详细介绍
- c#结束winword.exe进程、
- C#获取指定月指定周的日期范围 根据当前时间获取本月开始日期和结束日期
- LINUX查看进程开始时间、结束时间、运行时间
- 捕捉DataGrid的双击事件(C#版本)
- 得到系统进程和结束某个指定的进程 (C#)
- C#导出Excel后无法结束相应进程的解决办法
- Animation动画开始、结束、重复事件监听
- c# 获取本周开始时间与结束时间