我在 C# 方面有很好的工作经验,但现在我想开发一个简单的(可能是控制台应用程序)软件,它只检测我的计算机上启动或结束的进程的名称和时间。
例如(我假设我的小应用程序已经在运行),如果用户打开 Firefox,那么它应该随时间将 firefox.exe 插入数据库,如果用户关闭它,它也会执行相同的操作。
与上面相同,如果用户打开记事本,那么它应该插入 notepad.exe 以及时间等。
我知道如何在数据库中插入值,但我只需要您的帮助来确定进程/程序何时在我的系统上启动或结束。
老实说,我以前从未开发过这种应用程序,所以我不知道可以使用控制台应用程序,或者我需要制作一个 Windows 服务应用程序等。
因此,请考虑我作为初学者来提供您的答案。
在 C# 部分我能够理解它,所以不需要担心这一点。
我正在使用 Visual Studio 2010 和 .net 4.0。
要在不轮询的情况下执行此操作,需要 WMI。这在 .net 中得到了很好的支持,您可以使用ManagementEventWatcher类来订阅 WMI 通知。
This 代码项目文章说明了它是如何完成的。下面的摘录显示了它是多么简单。
notePad = new ProcessInfo("notepad.exe");
notePad.Started +=
new Win32Process.ProcessInfo.StartedEventHandler(this.NotepadStarted);
notePad.Terminated +=
new Win32Process.ProcessInfo.TerminatedEventHandler(this.NotepadTerminated);
注意ProcessInfo
是在该文章所附代码中实现的类。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)