某网站开发项目成本估计/百度商家版下载
相信很多人在易语言编程中包括其他编程中在进行进程方面的操作,特别是进程枚举的时候都会用到别人的代码、公开的dll、类、模块等。
很少有人能自己写出进程枚举操作。特别是对于使用易语言的同学来说更是如此了。你们使用了易语言带来的便利性,却忽视了自己知识的重要性。
下面我就对非常短的进程枚举代码进行一下分析。(仅能枚举普通进程,不能进入内核枚举隐藏进程)
首先讲一下要用到的API吧:
整数型 CreateToolhelp32Snapshot(整数型 dwFlags,整数型 th32ProcessID)//整数型也就是int类型,这个API的作用是创建一个当前进程列表的快照。非常重要哦!
整数型 GetLastError() 这个API其实可有可无。它的作用是返回上一次API发生错误的错误代码。如果你CreateToolhelp32Snapshot的返回值是INVALID_HANDLE_VALUE(也就是-1)的话,就可以立刻调用这个函数取错误信息咯,注意是立刻哈。
逻辑型 Process32First(整数型 hSnapshot,LPPROCESSENTRY32 lppe)这个就是装载第一个进程的API啦。通过结构体(自定义数据类型)PPROCESSENTRY32(下文会介绍)来保存第一个进程的信息
逻辑型 Process32Next(整数型 hSnapshot,LPPROCESSENTRY32 lppe)和上面一样。这个只不过就是每调用一次,就装载下一个进程的信息啦。
整数型 CloseHandle(整数型 对象句柄)通过函数:CreateToolhelp32Snapshot返回的procSnap就要把它结束掉啦。
API就只用到了这几个,是不是很简单呢?下面让我们来看一下上面提到的PPROCESSENTRY32吧!
.版本 2
.数据类型 LPPROCESSENTRY32
.成员 数据类型长度, 整数型
.成员 进程引用计数, 整数型
.成员 进程ID, 整数型
.成员 进程默认堆ID, 整数型
.成员 进程模块ID, 整数型
.成员 线程计数, 整数型
.成员 父进程ID, 整数型
.成员 线程优先权, 整数型
.成员 保留, 整数型
.成员 进程文件名, 字节型, , "100"
转载于:https://blog.51cto.com/sqwill/1147970