gpt4 book ai didi

c# - 如何按名称扫描并杀死进程

转载 作者:行者123 更新时间:2023-11-30 20:20:57 26 4
gpt4 key购买 nike

我想制作一个程序来扫描并按名称终止进程。我发现了这个:

foreach (Process process in Process.GetProcessesByName("vlc"))
{
process.Kill();
process.WaitForExit();
}

问题是这只会杀死进程一次然后关闭。我想要的是程序继续并在再次启动时再次终止进程。有什么想法吗?

最佳答案

我想你可以使用这样的解决方案:

private ManagementEventWatcher WatchForProcessStart(string processName)
{
string queryString =
"SELECT TargetInstance" +
" FROM __InstanceCreationEvent " +
"WITHIN 10 " +
" WHERE TargetInstance ISA 'Win32_Process' " +
" AND TargetInstance.Name = '" + processName + "'";

// The dot in the scope means use the current machine
string scope = @"\\.\root\CIMV2";

// Create a watcher and listen for events
ManagementEventWatcher watcher = new ManagementEventWatcher(scope, queryString);
watcher.EventArrived += ProcessStarted;
watcher.Start();
return watcher;
}

然后在启动新进程的情况下:

private void ProcessStarted(object sender, EventArrivedEventArgs e)
{
//Here kill the process.
}

但是所有这些都是一个非常奇怪的概念,每次启动时都要杀死进程。我宁愿尝试找出阻止开始的方法,但我当然不知道商业案例。

您可以在 ManagementEventWatcher 类上找到更多信息 here .

关于c# - 如何按名称扫描并杀死进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35048211/

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