gpt4 book ai didi

c# - 当*任何*进程启动时得到通知,然后卡住/暂停/挂起它

转载 作者:可可西里 更新时间:2023-11-01 11:48:47 27 4
gpt4 key购买 nike

当每个进程在我的机器上启动时,我试图监控它。

在进程启动后对其进行监控对于此类来说是没有问题的:

class ProcessHelper
{
ManagementEventWatcher processListener;
public ProcessHelper()
{
processListener = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace"));
processListener.EventArrived += new EventArrivedEventHandler(ProcessListener_ProcessStarted);
processListener.Start();
}

PropertyDataCollection.PropertyDataEnumerator propEnum;
private void ProcessListener_ProcessStarted(object sender, EventArrivedEventArgs e)
{
propEnum = e.NewEvent.Properties.GetEnumerator();

while(propEnum.MoveNext())
{
//DoMyStuff
}
}

public void stopListener()
{
processListener.Stop();
}
}

但我想在进程启动之前执行此操作,并中断其启动。

我的目标是:我想在进程启动时收到通知。我还需要它的完整文件路径。然后我想打断开始。 (让我们称之为“卡住”过程)

当进程被卡住时,我想做一些检查,然后将其杀死或让它启动。

//编辑

我想我找到了如何卡住进程,in this thread .

所以我“只”需要知道如何在进程启动时收到通知,以立即卡住它。

用C/C++库没问题。

我想使用 .NET Framewok 2.0 - 4.0 开发应用程序

有谁知道这在 C# 中是否(以及如何)可行?

最佳答案

如果您希望能够在进程执行单个指令之前可靠地停止该进程,您将需要使用自定义驱动程序。基本上你正在编写与防病毒软件相同的逻辑,所以只需遵循“write your own antivirus tutorial

您的 WMI 方法 kina 有效,但可执行文件有时间运行一小段时间,然后您的代码会暂停它。驱动程序将执行几乎相同的逻辑,但将使用进程 Hook ,因此允许在允许进程启动之前执行其代码。

关于c# - 当*任何*进程启动时得到通知,然后卡住/暂停/挂起它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36292983/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com