为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 易语言例程 正文

易语言枚举进程所有句柄

三叶资源网 2019-09-21 11:50:43 易语言例程 2665 ℃ 1 评论

资源介绍:

.版本 2
.支持库 iext

.程序集 窗口程序集_窗口1, , , ' 本源码来自三叶资源网(www.sanye.cx)
.程序集变量 cpid, 整数型

.子程序 _窗口1_创建完毕

cpid = GetCurrentProcessId ()
编辑框1.内容 = 到文本 (cpid)

.子程序 _按钮1_被单击
.局部变量 pid, 整数型
.局部变量 list, List
.局部变量 i, 整数型
.局部变量 info, SYSTEM_HANDLE_INFORMATION
.局部变量 handle, 整数型
.局部变量 hProcess, 整数型
.局部变量 index, 整数型

超级列表框1.全部删除 ()
pid = 到整数 (编辑框1.内容)
list = 获取系统所有句柄信息 ()
.如果真 (pid ≠ cpid)
    hProcess = OpenProcess (#PROCESS_ALL_ACCESS, 假, pid)
.如果真结束
.变量循环首 (0, list.Count () - 1, 1, i)
    RtlMoveMemory_SYSTEM_HANDLE_INFORMATION (info, list.GetItem (i), #sizeof_SYSTEM_HANDLE_INFORMATION)
    .如果真 (info.ProcessId = pid)
        .如果 (pid = cpid)
            handle = info.Handle
        .否则
            DuplicateHandle (hProcess, info.Handle, GetCurrentProcess (), handle, #DUPLICATE_SAME_ACCESS, 假, #DUPLICATE_SAME_ACCESS)
        .如果结束
        index = 超级列表框1.插入表项 (, 获取句柄类型 (handle), , , , )
        超级列表框1.置标题 (index, 1, 获取句柄名 (handle))
        超级列表框1.置标题 (index, 2, 到文本 (info.Handle))
        超级列表框1.置标题 (index, 3, 到文本 (info.Object))
        超级列表框1.置标题 (index, 4, 到文本 (info.ObjectTypeNumber))
        超级列表框1.置标题 (index, 5, 到文本 (获取句柄引用数 (handle)))
        .如果真 (pid ≠ cpid)
            CloseHandle (handle)
        .如果真结束

    .如果真结束

.变量循环尾 ()
.如果真 (hProcess ≠ 0)
    CloseHandle (hProcess)
.如果真结束


.子程序 获取系统所有句柄信息, List
.局部变量 len, 整数型
.局部变量 buffer, 字节集
.局部变量 status, 整数型
.局部变量 list, List

len = 16534  ' 0x4096
.循环判断首 ()
    buffer = 取空白字节集 (len)
    status = ZwQuerySystemInformation (#SystemHandleInformation, buffer, len, 0)
    .如果真 (status = #STATUS_INFO_LENGTH_MISMATCH)
        len = len + 16534  ' 0x4096
    .如果真结束

.循环判断尾 (status = #STATUS_INFO_LENGTH_MISMATCH)
list.List (buffer, #sizeof_SYSTEM_HANDLE_INFORMATION)
返回 (list)

.子程序 获取句柄名, 文本型
.参数 handle, 整数型
.局部变量 size, 整数型
.局部变量 unicode, 字节集
.局部变量 ansi, STRING
.局部变量 str, 文本型

.如果 (ZwQueryObject (handle, #ObjectTypeInformation, unicode, 0, size) ≠ #STATUS_INVALID_HANDLE)
    unicode = 取空白字节集 (size)
    ZwQueryObject (handle, #ObjectNameInformation, unicode, size, 0)
    RtlUnicodeStringToAnsiString (ansi, unicode, 真)
    str = 指针到文本 (ansi.Buffer)
    RtlFreeAnsiString (ansi)
.否则
    str = “无法获取”
.如果结束
返回 (str)

.子程序 获取句柄类型, 文本型
.参数 handle, 整数型
.局部变量 size, 整数型
.局部变量 unicode, 字节集
.局部变量 ansi, STRING
.局部变量 str, 文本型

.如果 (ZwQueryObject (handle, #ObjectTypeInformation, unicode, 0, size) ≠ #STATUS_INVALID_HANDLE)
    unicode = 取空白字节集 (size)
    ZwQueryObject (handle, #ObjectTypeInformation, unicode, size, 0)
    RtlUnicodeStringToAnsiString (ansi, unicode, 真)
    str = 指针到文本 (ansi.Buffer)
    RtlFreeAnsiString (ansi)
.否则
    str = “无法获取”
.如果结束
返回 (str)

.子程序 获取句柄引用数, 整数型
.参数 handle, 整数型
.局部变量 state, SYSTEM_HANDLE_STATE

ZwQueryObject_SYSTEM_HANDLE_STATE (handle, #ObjectBasicInformation, state, #sizeof_SYSTEM_HANDLE_STATE, 0)
返回 (state.ReferenceCount - 1)


资源作者:

@为你芯冻

资源下载:

文件下载

Tags:

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

已有1位网友发表了看法:

  • 易语言

    易语言  评论于 [2020-06-16 23:01:01]  回复

    枚举进程句柄

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
左右按键socks5代理系统服务靠边隐藏CMD输出自动打铃XML解析器工资管理系统英文智能提示图片比例缩放BAT批处理咪咕音乐取文件列表京东联盟返利转链文字识别web微信源码快手正则表达式测试工具因特网服务支持库窗口位置控制模块
最新评论