gpt4 book ai didi

c# - 如何在 Windows 中使用 C# 检测进程开始和结束?

转载 作者:可可西里 更新时间:2023-11-01 12:25:19 25 4
gpt4 key购买 nike

我有很好的 C# 工作经验,但现在我想开发一个简单的(可能是控制台应用程序)软件,它只检测我计算机上进程开始或结束的名称和时间。

例如(我假设我的小应用程序已经在运行)如果用户打开 Firefox,那么它应该随时间将 firefox.exe 插入到数据库中,如果用户关闭它,它也会做同样的事情。

和上面一样,如果用户打开记​​事本,那么它应该插入带有时间的 notepad.exe 等等。

我知道如何在数据库中插入值,但我只需要您帮助我确定进程/程序何时在我的系统上开始或结束。

老实说我以前从未开发过这种应用程序,所以我不知道可以使用控制台应用程序还是我需要制作一个 Windows 服务应用程序等。

因此,考虑到我是初学者,请提供您的答案。

在C#的部分我能够理解它所以需要担心。

我正在使用带有 .net 4.0 的 visual studio 2010。

最佳答案

要在不进行轮询的情况下执行此操作,需要 WMI。这在 .net 中得到很好的支持,您可以使用 ManagementEventWatcher订阅 WMI 通知的类。

Code Project article说明了它是如何完成的。这是一个显示它是多么简单的摘录。

notePad = new ProcessInfo("notepad.exe");
notePad.Started +=
new Win32Process.ProcessInfo.StartedEventHandler(this.NotepadStarted);
notePad.Terminated +=
new Win32Process.ProcessInfo.TerminatedEventHandler(this.NotepadTerminated);

请注意,ProcessInfo 是该文章所附代码中实现的一个类。

关于c# - 如何在 Windows 中使用 C# 检测进程开始和结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8455873/

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