博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#捕捉进程开始和结束事件
阅读量:6854 次
发布时间:2019-06-26

本文共 1304 字,大约阅读时间需要 4 分钟。

通过C#捕捉进程开始和结束事件,禁止notepad.exe运行。这比用钩子的代码少多了。但我测试时,偶尔有事件被漏掉的情况。要求不太苛刻的地方,还是可以用用的。

 
  1. using System; 
  2. using System.Management; 
  3.  
  4. class Process 
  5.     public static void Main() 
  6.     { 
  7.         ManagementEventWatcher startWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace")); 
  8.         startWatch.EventArrived += new EventArrivedEventHandler(startWatch_EventArrived); 
  9.         startWatch.Start(); 
  10.         ManagementEventWatcher stopWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace")); 
  11.         stopWatch.EventArrived += new EventArrivedEventHandler(stopWatch_EventArrived); 
  12.         stopWatch.Start(); 
  13.         Console.WriteLine("Press ENTER to exit"); 
  14.         Console.ReadLine(); 
  15.         startWatch.Stop(); 
  16.         stopWatch.Stop(); 
  17.     } 
  18.  
  19.     static void stopWatch_EventArrived(object sender, EventArrivedEventArgs e) 
  20.     { 
  21.         Console.WriteLine("Process stopped: {0}", e.NewEvent.Properties["ProcessName"].Value); 
  22.     } 
  23.  
  24.     static void startWatch_EventArrived(object sender, EventArrivedEventArgs e) 
  25.     { 
  26.         string name = e.NewEvent.Properties["ProcessName"].Value.ToString(); 
  27.         int id = Convert.ToInt32(e.NewEvent.Properties["ProcessId"].Value); 
  28.         Console.WriteLine("Process started: {0}", name); 
  29.         if (name == "notepad.exe"
  30.         { 
  31.             System.Diagnostics.Process.GetProcessById(id).Kill(); 
  32.         } 
  33.     } 
本文转自 h2appy  51CTO博客,原文链接:http://blog.51cto.com/h2appy/704270,如需转载请自行联系原作者
你可能感兴趣的文章
【Spark Summit East 2017】使用Spark进行可伸缩的元基因组分析
查看>>
一张图清晰追溯数据库的发展历程(1962-2016)
查看>>
【D3.js 学习总结】10、D3布局-力学图
查看>>
java 内部类(inner class)详解
查看>>
G1 收集器
查看>>
C语言及程序设计进阶例程-9 预处理之文件包含
查看>>
项目优化总结
查看>>
浏览器加载 CommonJS 模块的原理与实现
查看>>
C++11新特性
查看>>
C语言笔试题
查看>>
改进了一下这个游戏的输出及思路,是不是好玩多了??:)
查看>>
Hibernate从入门到放弃(一)----初识ORM
查看>>
OpenSSL 与 SSL 数字证书概念贴
查看>>
云时代下的开源之路 专访阿里云数据库团队
查看>>
Android的sdk、api及工程目录说明
查看>>
RHEL64 缺少ISO 9660图像 安装程序试图挂载映像#1,在硬盘上无法找到该映像
查看>>
源码安装apache
查看>>
CentOS7安装MySQL5.6.27数据库
查看>>
Data Guard Broker系列之五:数据库角色转换
查看>>
第三章_JSP
查看>>