511遇见易语言API模块制作进程取程序路径

易语言API模块制作进程取程序路径,提高进程的PID获取程序的所在路径。

511遇见易语言API模块制作进程取程序路径_第1张图片

视频链接:

511遇见易语言模块API教程

进程_取程序路径

1、CreateToolhelp32Snapshot
快照句柄 = CreateToolhelp32Snapshot (8, 进程ID)

511遇见易语言API模块制作进程取程序路径_第2张图片
2、CloseHandle (快照句柄)

511遇见易语言API模块制作进程取程序路径_第3张图片
3、目录_取system32目录
GetSystemDirectoryA(成功返回system32目录的全路径)
4、Module32First(此函数检索与进程相关联的第一个模块的信息)
5、Win7的80端口默认是被System进程占用的
模块信息
https://baike.baidu.com/item/MODULEENTRY32/926525?fr=aladdin
https://technet.microsoft.com/zh-cn/library/ms886756

数据类型

511遇见易语言API模块制作进程取程序路径_第4张图片

.版本 2

.数据类型 进程模块信息, 公开, 进程模块信息modBaseAddr和hModule的成员只有在指定的th32ProcessID进程中才有效。
.成员 dwSize, 整数型, , , 1指定结构的长度,以字节为单位。在调用Module32First功能,设置这个成员SIZEOF(MODULEENTRY32)。如果你不初始化的dwSize,Module32First将失败。
.成员 th32ModuleID, 整数型, , , 2此成员已经不再被使用,通常被设置为1
.成员 th32ProcessID, 整数型, , , 3正在检查的进程标识符。这个成员的内容,可以使用Win32 API的元素
.成员 GlblcntUsage, 整数型, , , 4全局模块的使用计数,即模块的总载入次数。通常这一项是没有意义的,被设置为0xFFFF。
.成员 ProccntUsage, 整数型, , , 5全局模块的使用计数(与GlblcntUsage相同)。通常这一项也是没有意义的,被设置为0xFFFF。
.成员 modBaseAddr, 整数型, , , 6模块的基址,在其所属的进程范围内。
.成员 modBaseSize, 整数型, , , 7模块的大小,单位字节。
.成员 hModule, 整数型, , , 8所属进程的范围内,模块句柄。
.成员 szModule, 字节型, , "256", NULL结尾的字符串,其中包含模块名。
.成员 szExePath, 字节型, , "256", NULL结尾的字符串,其中包含的位置,或模块的路径。

Module32First

511遇见易语言API模块制作进程取程序路径_第5张图片

.版本 2

.DLL命令 Module32First, 整数型, "KERNEL32.DLL", "Module32First", , 进程_取程序路径
.参数 hSnapshot, 整数型, , 快照句柄
.参数 lpme, 进程模块信息

进程_取程序路径 源码

511遇见易语言API模块制作进程取程序路径_第6张图片

.版本 2

.子程序 进程_取程序路径, 文本型, 公开, 取指定进程的程序路径,成功返回程序路径,失败返回空
.参数 进程ID, 整数型
.局部变量 快照句柄, 整数型
.局部变量 模块信息, 进程模块信息
.局部变量 路径, 文本型

快照句柄 = CreateToolhelp32Snapshot (8, 进程ID)
.判断开始 (进程ID = 4)
CloseHandle (快照句柄)
返回 (目录_取system32目录 ())
.判断 (进程ID = -1)
返回 (“”)
.默认

.判断结束
模块信息.dwSize = 1024
Module32First (快照句柄, 模块信息)
路径 = 到文本 (模块信息.szExePath)
.判断开始 (取文本左边 (路径, 11) = “\SystemRoot”)
路径 = 读环境变量 (“SystemRoot”) + 子文本替换 (路径, “\SystemRoot”, “”, , 1, 假)

.判断 (取文本左边 (路径, 4) = “\??\”)
路径 = 子文本替换 (路径, “\??\”, “”, , 1, 假)
.默认

.判断结束
CloseHandle (快照句柄)
返回 (路径)

易语言调用

511遇见易语言API模块制作进程取程序路径_第7张图片

.版本 2
.支持库 spec

.程序集 窗口程序集_启动窗口, , , 511遇见(www.511yj.com)

.子程序 _按钮1_被单击, , , 进程_取程序路径
.局部变量 路径, 文本型

路径 = 进程_取程序路径 (9780)
标签1.标题 = 路径
调试输出 (路径)

源码:511遇见易语言模块API制作

           易语言API模块制作进程取程序路径

           易语言模块API制作系列视频教程

你可能感兴趣的:(易语言)