开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 23152|回复: 143
收起左侧

[易语言纯源码] 【首发】检测文件的占用,具有学习和商业价值(By超级用户),可以使用,仿电脑管家

    [复制链接]

结帖率:100% (4/4)
发表于 2018-7-2 15:34:41 | 显示全部楼层 |阅读模式   四川省宜宾市
分享源码
界面截图:
是否带模块: 纯源码
备注说明: -
本帖最后由 1185384801 于 2018-7-2 16:03 编辑

镇楼图: 扫描File.png DLL打开.png
电脑管家的文件文件占用扫描大家一个是耳熟能详吧?

可是(关键来了),有谁真正用易语言做出过这个文件扫描来吗?
有人可能会说:啊,百度上一堆啊
但是你自己去试试,那个可以使用?
So,亲身下河知深浅
我便做了一个文件扫描工具
先来说说文件占用
一般常用的有2种
1、DLL或EXE打开占用
这个大家一个知道吧,EXE或DLL被打开后就会处于占用状态
所以这个只需要扫描一下进程的DLL模块就OK
但是还有一种占用:
2、打开文件的占用
这个也是比较常见的占用方式
但是这个就无法有枚举进程DLL这么简单了
主要是利用CreateFile创建一个文件的句柄
所以只需要扫描句柄就可以
但是
你知道怎么扫描吗?
那么今天的重点就来了:扫描进程的File句柄
那么就需要利用一个非常重要但是用法很少的函数了:ZwQueryObject
直接商店代码还直观点:
  
子程序名返回值类型公开备 注
获取句柄类型文本型 
参数名类 型参考可空数组备 注
handle整数型
变量名类 型静态数组备 注
size整数型 
unicode字节集 
ansiSTRING 
str文本型 
如果 (ZwQueryObject (handle, #ObjectTypeInformation, unicode, 0, size)#STATUS_INVALID_HANDLE )  ' 只要不是无效的,为什么,详细看下面的注释
' 参数
' Handle
' 对象的一个句柄来获取信息。
' ObjectInformationClass
' 指定一个OBJECT_INFORMATION_CLASS返回值的类型决定了信息在ObjectInformation缓冲区。
' ObjectInformation
' 一个指向caller-allocated缓冲接收请求的信息。
' ObjectInformationLength
' 指定的大小,以字节为单位,ObjectInformation缓冲区。
' ReturnLength
' 一个指向变量的指针,接收的大小,以字节为单位,请求的关键信息。如果NtQueryObject STATUS_SUCCESS返回,返回的变量包含的数据量。如果NtQueryObject返回STATUS_BUFFER_OVERFLOW或STATUS_BUFFER_TOO_SMALL,您可以使用变量的值来确定所需的缓冲区大小。
' 返回值
' NtQueryObject返回STATUS_SUCCESS或适当的错误状态。可能的错误状态码包括以下:
' 返回代码 描述
' STATUS_ACCESS_DENIED
' 有足够的权限来执行该cha询。
' STATUS_INVALID_HANDLE
' 提供对象句柄无效。
' STATUS_INFO_LENGTH_MISMATCH
' 信息长度不足以容纳数据。
unicode = 取空白字节集 (size)
ZwQueryObject (handle, #ObjectTypeInformation, unicode, size, 0)  ' 读取信息的unicode文本
RtlUnicodeStringToAnsiString (ansi, unicode, )  ' 编码转换
' RtlUnicodeStringToAnsiString例程将给定Unicode字符串转换成一个ANSI字符串。
str = 指针到文本 (ansi.Buffer)
' RtlFreeAnsiString常规版本存储由RtlUnicodeStringToAnsiString分配。
' 参数
' AnsiString
' 指针ANSI字符串缓冲区由RtlUnicodeStringToAnsiString以前分配的。
RtlFreeAnsiString (ansi)
str = “无法获取”  ' 无效的怎么获取……
返回 (str)
这是获取句柄的类型,这个超级重要,file这个名字就是从这里取到的
除了取到句柄名字,还需要对取到的句柄路径进行Dos转换,就相当于把路径中类似于 \Device\HarddiskVolume1 的部分用 C:、D:等对应代替
\Device\HarddiskVolume是系统的一个路径用法,但是我们需要转换成我们常用的路径, 就需要进行DOS路径转换
最后把一堆代码拼起来就可以用了!!
至于更多的解释?
那你就看代码理解吧!!
最后还是那句老话:源码回复下载!!
最后说一句:如果你觉得可以的话,请:
一下(点2下又不会扣分),源码回复下载!! 扫描进程占用.zip (712.67 KB, 下载次数: 668)

点评

+9999 精币   四川省成都市  发表于 2023-11-28 13:55
精 币 + 999   四川省泸州市  发表于 2019-6-11 19:08

评分

参与人数 28好评 +21 精币 +42 收起 理由
tiller + 1 支持开源~!感谢分享
HILDA + 1 支持开源~!感谢分享
fengcui + 1 支持开源~!感谢分享
JOZA + 1 支持开源~!感谢分享
xintian + 1 + 1 感谢分享,很给力!~
tsaltedfishking + 1 新技能已get√
dwcq + 1 很好很强悍,坚持下去哦~
qinshuaiyi + 1 + 2 支持开源~!感谢分享
wupeihan + 1 + 1 支持开源~!感谢分享
wangzi1017 + 1 + 2 支持开源~!感谢分享
小系 + 1 + 2 支持开源~!感谢分享
linqing4 + 1 支持开源~!感谢分享
俊之霜 + 1 + 2 感谢发布原创作品,精易因你更精彩!
yinghao2005 + 1 + 2 支持开源~!感谢分享
daohao + 1 很赞同,谢谢!
gggdxyga + 1 支持开源~!感谢分享
新天地 + 1 支持开源~!感谢分享
罗泠雨人 + 1 + 1 支持开源~!感谢分享
vx:wwoz7295 + 1 感谢发布原创作品,精易因你更精彩!
以帅服人 + 1 + 2 支持开源~!感谢分享
Mr.伍先生 + 1 + 1 感谢分享源码
火狐编程 + 1 + 2 支持开源~!感谢分享
紫旭 + 1 + 10 新技能已get√
闻v风 + 1 + 1 新技能已get√
花老板 + 1 来回血
星空Allstar + 1 + 1 感谢发布原创作品,精易因你更精彩!
伤心猪大肠 + 1 + 3 感谢发布原创作品,精易因你更精彩!
Fate + 1 + 2 新技能已get√

查看全部评分


本帖被以下淘专辑推荐:

签到天数: 1 天

发表于 2024-3-30 09:56:09 | 显示全部楼层   河南省郑州市
666666666666666666666
回复 支持 反对

使用道具 举报

结帖率:77% (49/64)

签到天数: 2 天

发表于 2024-2-18 11:52:21 | 显示全部楼层   辽宁省朝阳市
66666666666666
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2024-1-18 04:13:21 | 显示全部楼层   江苏省南京市
回复 支持 反对

使用道具 举报

结帖率:97% (29/30)

签到天数: 5 天

发表于 2023-11-28 13:58:26 | 显示全部楼层   四川省成都市
WIN10失效了
回复 支持 反对

使用道具 举报

发表于 2023-11-28 13:48:06 | 显示全部楼层   河南省驻马店市
这么好的东西,不能错过
回复 支持 反对

使用道具 举报

结帖率:17% (5/30)
发表于 2023-10-12 17:41:58 | 显示全部楼层   四川省成都市
666666666666666666
回复 支持 反对

使用道具 举报

发表于 2023-10-6 09:44:58 | 显示全部楼层   广东省深圳市
666666666666666666666
回复 支持 反对

使用道具 举报

发表于 2023-9-20 12:16:46 | 显示全部楼层   香港特别行政区葵青区

呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃
回复 支持 反对

使用道具 举报

发表于 2023-9-20 12:15:57 | 显示全部楼层   香港特别行政区葵青区

呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃
回复 支持 反对

使用道具 举报

签到天数: 2 天

发表于 2023-4-26 23:43:24 | 显示全部楼层   四川省成都市
谢谢老板
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表