易语言制作任务管理器
人气:
【字体:大 中 小】
发布时间:2009-10-11 17:28:11
>>>>>>>>提问我想做个任务管理器~~
但是不会谁教教啊
着急啊
休 闲 居 编 辑
>>>>>>>>休闲养生网回答:主程序代码,完整的程序代码无法发上去,慢慢体会下就明白了。
----------------------------------------------------------------
.版本 2
.支持库 eAPI
.支持库 xplib
.支持库 iext
.程序集 窗口程序集1
.程序集变量 系统进程, 进程信息, , "0"
.程序集变量 I, 整数型
.程序集变量 X, 整数型
.程序集变量 系统进程1, 进程信息, , "0"
.程序集变量 I1, 整数型
.程序集变量 系统进程数组, 整数型, , "0"
.程序集变量 I2, 整数型
.程序集变量 i3, 整数型
.程序集变量 i4, 整数型
.程序集变量 i5, 整数型
.程序集变量 硬盘信息, 硬盘信息
.程序集变量 路径, 文本型
.子程序 __启动窗口_创建完毕
提升进程权限 ()
置随机数种子 (取秒 (取现行时间 ()))
_启动窗口.标题 = 到文本 (“任务管理器”)
表项 ()
列表 ()
XP风格 (3)
.子程序 提升进程权限, 逻辑型, 公开
.参数 目标进程, 整数型, 可空
.参数 权限类别, 文本型, 可空
.局部变量 hdlProcessHandle, 整数型
.局部变量 hdlTokenHandle, 整数型
.局部变量 tmpLuid, LuID
.局部变量 tkp, TOKEN_PRIVILEGES
.局部变量 tkpNewButIgnored, TOKEN_PRIVILEGES
.如果真 (取操作系统类别 () ≠ 3)
返回 (假)
.如果真结束
.如果真 (是否为空 (目标进程))
hdlProcessHandle = 获取线程 ()
.如果真结束
.如果真 (是否为空 (权限类别))
权限类别 = #调试
.如果真结束
打开令牌 (hdlProcessHandle, 40, hdlTokenHandle)
恢复权限 (“”, 权限类别, tmpLuid)
tkp.PrivilegeCount = 1
tkp.lowpart = tmpLuid.lowpart
tkp.highpart = tmpLuid.highpart
tkp.Attributes = 2
返回 (获取令牌特权 (hdlTokenHandle, 0, tkp, 28, tkpNewButIgnored, 0))
.子程序 列表
超级列表框1.全部删除 ()
重定义数组 (系统进程, 假, 0)
连续赋值 (0, X, I)
系统进程 = 取系统进程列表 ()
数组排序 (系统进程, 真)
.计次循环首 (取数组成员数 (系统进程), I)
X = X + 1
超级列表框1.插入表项 (X, 到文本 (系统进程 [I].进程标识符), , , , )
超级列表框1.置标题 (X - 1, 1, 系统进程 [I].进程名称)
超级列表框1.置标题 (X - 1, 2, 到文本 (系统进程 [I].线程优先权))
超级列表框1.置标题 (X - 1, 3, 到文本 (系统进程 [I].线程数))
超级列表框1.置标题 (X - 1, 4, 到文本 (系统进程 [I].父进程标识符))
超级列表框1.置标题 (X - 1, 5, 到文本 (系统进程 [I].进程模块标识符))
路径 = 取模块路径 (系统进程 [I].进程标识符)
.如果 (寻找文本 (路径, “\??\”, , 真) ≠ -1)
路径 = 取文本右边 (路径, 取文本长度 (路径) - 4)
.否则
.如果结束
超级列表框1.置标题 (X - 1, 6, 路径)
.计次循环尾 ()
.子程序 _按钮1_被单击
列表 ()
.子程序 表项
超级列表框1.插入列 (0, “PID”, 40, , , )
超级列表框1.插入列 (1, “映像名称”, 100, 1, , )
超级列表框1.插入列 (2, “线程优先权”, 75, 1, , )
超级列表框1.插入列 (3, “线程数”, 50, 1, , )
超级列表框1.插入列 (4, “父进程标识”, 75, 1, , )
超级列表框1.插入列 (5, “模块标识”, 60, 1, , )
超级列表框1.插入列 (6, “路径”, 260, 1, , )
.子程序 _按钮2_被单击
.如果 (终止进程 (到数值 (超级列表框1.取标题 (超级列表框1.现行选中项, ))) = 假)
_启动窗口.总在最前 = 假
信息框 (“该进程为关键进程,不能结束!”, 0, )
_启动窗口.总在最前 = 真
.否则
按钮2.禁止 = 真
.如果结束
.子程序 _时钟1_周期事件
系统进程1 = 取系统进程列表 ()
连续赋值 (0, I2, i4, i3)
i3 = 超级列表框1.取表项数 ()
i5 = 取数组成员数 (系统进程1)
.如果 (i3 < i5)
.计次循环首 (i5, i4)
.计次循环首 (i3, I2)
.如果 (系统进程1 [i4].进程标识符 = 到数值 (超级列表框1.取标题 (I2 - 1, 0)))
跳出循环 ()
.否则
I2 = I2 + 1
.如果 (I2 > i3)
超级列表框1.插入表项 (i3, 到文本 (系统进程1 [i4].进程标识符), , , , )
超级列表框1.置标题 (i3, 1, 系统进程1 [i4].进程名称)
超级列表框1.置标题 (i3, 2, 到文本 (系统进程1 [i4].线程优先权))
超级列表框1.置标题 (i3, 3, 到文本 (系统进程1 [i4].线程数))
超级列表框1.置标题 (i3, 4, 到文本 (系统进程1 [i4].父进程标识符))
超级列表框1.置标题 (i3, 5, 到文本 (系统进程1 [i4].进程模块标识符))
路径 = 取模块路径 (系统进程1 [i4].进程标识符)
.如果 (寻找文本 (路径, “\??\”, , 真) ≠ -1)
路径 = 取文本右边 (路径, 取文本长度 (路径) - 4)
.否则
.如果结束
超级列表框1.置标题 (i3, 6, 路径)
.否则
.如果结束
.如果结束
.计次循环尾 ()
.计次循环尾 ()
.否则
.计次循环首 (i3, I2)
.计次循环首 (i5, i4)
.如果 (到数值 (超级列表框1.取标题 (I2 - 1, )) = 系统进程1 [i4].进程标识符)
跳出循环 ()
.否则
i4 = i4 + 1
.如果 (i4 > i5)
超级列表框1.删除表项 (I2 - 1)
.否则
.如果结束
.如果结束
.计次循环尾 ()
.计次循环尾 ()
.如果结束
.子程序 _选择框1_被单击
.如果 (选择框1.选中 = 真)
时钟1.时钟周期 = 1000
按钮1.禁止 = 真
.否则
时钟1.时钟周期 = 0
按钮1.禁止 = 假
.如果结束
.子程序 _超级列表框1_左键单击表项
按钮2.禁止 = 假
.子程序 取模块路径, 文本型
.参数 processid, 整数型
.局部变量 snap, 整数型
.局部变量 mod, 模块信息
snap = CreateToolhelp32Snapshot (8, processid)
.如果真 (snap = -1)
返回 (“”)
.如果真结束
mod.size = 1024
Module32First (snap, mod)
返回 (取字节集数据 (到字节集 (mod.szpath), 10))
≡ 查看、发表评论 ≡