|
发表于 2012-1-30 16:43:15
|
显示全部楼层
福建省南平市
[e]子程序名 返回值类型 公开 备注
取进程号 整数型
参数名 类型 参考 可空 数组 备注
_进程名 文本型 如:QQ.exe
_区分大小写 逻辑型 √ 默认真
变量名 类型 静态 数组 备注
进程列表 进程信息 0
a 整数型
如果真 (是否为空 (_区分大小写))
┊ _区分大小写 = 真
如果真结束
进程列表 = 取系统进程列表 ()
计次循环首 (取数组成员数 (进程列表), a)
┊ 如果真 (进程列表 [a].进程名称 = _进程名 或 _区分大小写 = 假 且 到小写 (进程列表 [a].进程名称) = 到小写 (_进程名))
┊ ┊ 返回 (进程列表 [a].进程标识符)
┊ 如果真结束
┊
计次循环尾 ()
子程序名 返回值类型 公开 备注
取进程路径 文本型
参数名 类型 参考 可空 数组 备注
进程号 整数型
变量名 类型 静态 数组 备注
全路径名 文本型
进程句柄 整数型
系统目录 文本型
系统目录 = 取空白文本 (255)
GetSystemDirectoryA (系统目录, 255)
' ------------------------------------------
进程句柄 = OpenProcess (1040, 0, 进程号)
全路径名 = 取空白文本 (255)
如果真 (GetModuleFileNameExA (进程句柄, 0, 全路径名, 255) ≠ 0)
┊ 全路径名 = 子文本替换 (全路径名, “\??\”, “”, , , 真)
┊ 如果真 (到小写 (取文本左边 (全路径名, 12)) = “\systemroot\”)
┊ ┊ 输出调试文本 (到小写 (取文本左边 (全路径名, 12)))
┊ ┊ 全路径名 = 子文本替换 (全路径名, “\systemroot\”, 系统目录, , , 假)
┊ 如果真结束
┊ 返回 (全路径名)
如果真结束
返回 (“”)
DLL命令名 返回值数据类型 公开 备注
OpenProcess 整数型 打开一个现有进程的句柄。返回值Long,如执行成功,返回进程句柄;零表示失败。会设置GetLastErrora。
DLL库文件名
kernel32
在DLL库中对应命令名
OpenProcess
参数名 类型 传址 数组 备注
dwDesiredAccess 整数型 Long,指定这个句柄要求的访问方法。指定API32.TXT文件中以PROCESS_???开头的一个或多个常数
bInheritHandle 整数型 Long,如句柄能够由子进程继承,则为TRUE
dwProcessId 整数型 Long,要打开那个进程的进程标识符
DLL命令名 返回值数据类型 公开 备注
GetModuleFileNameExA 整数型 获取一个已装载模板的完整路径名称。返回值Long,如执行成功,返回复制到lpFileName的实际字符数量;零表示失败。会设置GetLastErrora。
DLL库文件名
psapi.dll
在DLL库中对应命令名
参数名 类型 传址 数组 备注
hModule 整数型 备注1无法读取,请您提供该API名报易BBS中ID号klasp完善。
dd 整数型
lpFileName 文本型 备注2无法读取,请您提供该API名报易BBS中ID号klasp完善。
nSize 整数型 备注3无法读取,请您提供该API名报易BBS中ID号klasp完善。
DLL命令名 返回值数据类型 公开 备注
GetSystemDirectoryA 整数型 这个函数能取得Windows系统目录(System目录)的完整路径名。在这个目录中,包含了所有必要的系统文件。根据微软的标准,其他定制控件和一些共享组件也可放到这个目录。通常应避免在这个目录里创建文件。在网络环境中,往往需要管理员权限才可对这个目录进行写操作。返回值Long,装载到lpBuffer缓冲区的字符数量。如lpBuffer不够大,不能容下文件名,则返回要求的缓冲区长度。
DLL库文件名
kernel32
在DLL库中对应命令名
GetSystemDirectoryA
参数名 类型 传址 数组 备注
lpBuffer 文本型 备注1无法读取,请您提供该API名报易BBS中ID号klasp完善。
nSize 整数型 备注2无法读取,请您提供该API名报易BBS中ID号klasp完善。
i本程序使用的支持库列表
eAPI (应用接口支持库)
i以下为文本格式源码,直接复制粘贴至易语言IDE中即可.
.版本 2
.支持库 eAPI
.子程序 取进程号, 整数型
.参数 _进程名, 文本型, , 如:QQ.exe
.参数 _区分大小写, 逻辑型, 可空, 默认真
.局部变量 进程列表, 进程信息, , "0"
.局部变量 a, 整数型
.如果真 (是否为空 (_区分大小写))
_区分大小写 = 真
.如果真结束
进程列表 = 取系统进程列表 ()
.计次循环首 (取数组成员数 (进程列表), a)
.如果真 (进程列表 [a].进程名称 = _进程名 或 _区分大小写 = 假 且 到小写 (进程列表 [a].进程名称) = 到小写 (_进程名))
返回 (进程列表 [a].进程标识符)
.如果真结束
.计次循环尾 ()
.子程序 取进程路径, 文本型
.参数 进程号, 整数型
.局部变量 全路径名, 文本型
.局部变量 进程句柄, 整数型
.局部变量 系统目录, 文本型
系统目录 = 取空白文本 (255)
GetSystemDirectoryA (系统目录, 255)
' ------------------------------------------
进程句柄 = OpenProcess (1040, 0, 进程号)
全路径名 = 取空白文本 (255)
.如果真 (GetModuleFileNameExA (进程句柄, 0, 全路径名, 255) ≠ 0)
全路径名 = 子文本替换 (全路径名, “\??\”, “”, , , 真)
.如果真 (到小写 (取文本左边 (全路径名, 12)) = “\systemroot\”)
输出调试文本 (到小写 (取文本左边 (全路径名, 12)))
全路径名 = 子文本替换 (全路径名, “\systemroot\”, 系统目录, , , 假)
.如果真结束
返回 (全路径名)
.如果真结束
返回 (“”)
.DLL命令 OpenProcess, 整数型, "kernel32", "OpenProcess", , 打开一个现有进程的句柄。返回值Long,如执行成功,返回进程句柄;零表示失败。会设置GetLastErrora。
.参数 dwDesiredAccess, 整数型, , Long,指定这个句柄要求的访问方法。指定API32.TXT文件中以PROCESS_???开头的一个或多个常数
.参数 bInheritHandle, 整数型, , Long,如句柄能够由子进程继承,则为TRUE
.参数 dwProcessId, 整数型, , Long,要打开那个进程的进程标识符
.DLL命令 GetModuleFileNameExA, 整数型, "psapi.dll", , , 获取一个已装载模板的完整路径名称。返回值Long,如执行成功,返回复制到lpFileName的实际字符数量;零表示失败。会设置GetLastErrora。
.参数 hModule, 整数型, , 备注1无法读取,请您提供该API名报易BBS中ID号klasp完善。
.参数 dd, 整数型
.参数 lpFileName, 文本型, , 备注2无法读取,请您提供该API名报易BBS中ID号klasp完善。
.参数 nSize, 整数型, , 备注3无法读取,请您提供该API名报易BBS中ID号klasp完善。
.DLL命令 GetSystemDirectoryA, 整数型, "kernel32", "GetSystemDirectoryA", , 这个函数能取得Windows系统目录(System目录)的完整路径名。在这个目录中,包含了所有必要的系统文件。根据微软的标准,其他定制控件和一些共享组件也可放到这个目录。通常应避免在这个目录里创建文件。在网络环境中,往往需要管理员权限才可对这个目录进行写操作。返回值Long,装载到lpBuffer缓冲区的字符数量。如lpBuffer不够大,不能容下文件名,则返回要求的缓冲区长度。
.参数 lpBuffer, 文本型, , 备注1无法读取,请您提供该API名报易BBS中ID号klasp完善。
.参数 nSize, 整数型, , 备注2无法读取,请您提供该API名报易BBS中ID号klasp完善。
[/e] |
|