Niy*_*yaz 10 windows events executable process
我们正在尝试开发一个可以监视在Windows机器上执行的程序/进程的小应用程序.
如果程序/进程不应该运行,则应该阻止它.它的工作原理类似于防病毒.
这是基本的想法.
我想知道挂钩操作系统的方法,以获得有关尝试在机器中运行的每个程序/进程的通知.
Rob*_*upt 11
最简单的方法是使用WMI.特别是监视Win32_ProcessStartTrace.这比Win32_Process更好,因为它设置为使用事件,而Win32_Process需要更多CPU密集的轮询.以下是如何在C#中完成的.首先确保将System.Management设置为项目的参考.
public System.Management.ManagementEventWatcher mgmtWtch;
public Form1()
{
InitializeComponent();
mgmtWtch = new System.Management.ManagementEventWatcher("Select * From Win32_ProcessStartTrace");
mgmtWtch.EventArrived += new System.Management.EventArrivedEventHandler(mgmtWtch_EventArrived);
mgmtWtch.Start();
}
void mgmtWtch_EventArrived(object sender, System.Management.EventArrivedEventArgs e)
{
MessageBox.Show((string)e.NewEvent["ProcessName"]);
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
mgmtWtch.Stop();
}
Run Code Online (Sandbox Code Playgroud)
每次启动新进程时,代码都会生成一个消息框.从那里你可以检查白名单/黑名单并采取适当的行动.
| 归档时间: |
|
| 查看次数: |
17601 次 |
| 最近记录: |