如何捕获Windows操作系统事件? (C#)

时间:2011-01-09 17:47:45

标签: c# windows events

我想记录用户打开的所有程序和文件,使用C#编程语言在Windows中创建自己常用的程序列表。谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

没有简单的方法来实现这一目标。 Windows不提供此类事件。

你能做的是:

  1. 每隔几秒钟循环通过所有打开的窗口或正在运行的进程并获取其信息。对于Windows枚举,您可以使用以下逻辑:http://www.codeproject.com/KB/cs/WindowTabifier.aspx

  2. 您可以使用诸如将dll注入任务管理器,钩住Kernel32中的TerminateProcess等方法。相关示例:http://www.codeproject.com/KB/threads/taskex.aspx

答案 1 :(得分:0)

Process[] processlist = Process.GetProcesses();

foreach(Process theprocess in processlist){
Console.WriteLine(“Process: {0} ID: {1}”, theprocess.ProcessName, theprocess.Id);
}

这将为您提供当前正在运行的流程的详细信息,您无法定期查看此列表以查找已启动的新应用程序。