:3.278KB : :1 :2019-12-13 20:02:19
其实上面的这个查询内存以及终止进程功能在用户模式下也是可以实现的,但是相对于在内核模式下而言,用户模式下所做的操作是非常有限的。
而在用户层的话,很明显,是需要显示所有的进程信息的,并且在和驱动层进行通信的时候,需要考虑传递用户选定的进程的句柄,
所以在用户层是需要保存有所有的进程的句柄的,为了简单起见,这里可以不通过驱动来实现进程信息的获取,而是通过其他的方式来获取。
(这些信息包括进程信息,进程使用的模块信息,进程所拥有的线程信息)。
索引 = 超级列表框1.插入表项 (, 到文本 (序号), , , , )
超级列表框1.置标题 (索引, 1, 到文本 (句柄))
超级列表框1.置标题 (索引, 2, 标题)
超级列表框1.置标题 (索引, 3, 控件类名)
标题 = 窗口名 (句柄)
.如果 (窗口属性 (句柄, 假, 真, 假))
树型框1.加入项目 (0, 标题, , , 句柄)
.否则
树型框1.加入项目 (1, 到文本 (句柄), , , 句柄)
.如果结束
句柄 = 窗口句柄 (句柄, 2)
要做的是 Windows 的任务管理器,而且还有一些特别的处理,所以在做法上自然有些特别,
比如有很多东西都不能够直接在用户层上获取到,而必须深入到内核层才能够获取到这些信息,
比如内存的具体分配,甚至是关键性进程的终止等等,这些都必须在内核层才能实现。
02-08进程监控不存在崩溃则自动打开