这篇文章主要介绍易语言枚举电脑驱动如何判断是否存在指定驱动,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
创新互联公司2013年至今,是专业互联网技术服务公司,拥有项目成都网站建设、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元平凉做网站,已为上家服务,为平凉各地企业和个人服务,联系电话:18982081108
DLL命令代码
.版本 2 .DLL命令 NtQuerySystemInformation, 整数型, "NTDLL.DLL", "NtQuerySystemInformation" .参数 SystemInformationClass, 整数型 .参数 pSystemInformation, 整数型 .参数 SystemInformationLength, 整数型 .参数 ReturnLength, 整数型, 传址 .DLL命令 CopyMemory, , "kernel32", "RtlMoveMemory" .参数 pDst, MODULES, 传址 .参数 pSrc, 整数型 .参数 ByteLen, 整数型 .DLL命令 GlobalSize, 整数型, "kernel32", "GlobalSize", , 返回全局内存块大小 .参数 hMem, MODULES
自定义数据类型表
.版本 2 .数据类型 内核驱动成员 .成员 驱动文件名, 文本型 .数据类型 MODULES .成员 dwNumberOfModules, 整数型 .成员 ModuleInformation, INFORMATION .数据类型 INFORMATION .成员 dwReserved, 整数型, , "2" .成员 dwBase, 整数型 .成员 dwSize, 整数型 .成员 dwFlags, 整数型 .成员 Index, 短整数型 .成员 Unknown, 短整数型 .成员 LoadCount, 短整数型 .成员 ModuleNameOffset, 短整数型 .成员 ImageName, 字节型, , "256"
判断驱动是否存在的代码
.版本 2 .支持库 spec .程序集 窗口程序集1 .子程序 _判断按钮_被单击 .判断开始 (驱动是否存在 (“PCHunter64ao.sys”) = 真 或 驱动是否存在 (“PCHunter32ao.sys”) = 真) 信息框 (“存在”, 64, , ) .默认 信息框 (“不存在”, 16, , ) .判断结束 .子程序 驱动是否存在, 逻辑型, 公开, 取系统已加载的驱动,成功取到返回真,失败返回假 .参数 驱动名, 文本型 .局部变量 驱动成员, 内核驱动成员, , "0" .局部变量 循环计次, 整数型 枚举系统驱动 (驱动成员) .计次循环首 (取数组成员数 (驱动成员), 循环计次) .如果真 (驱动成员 [循环计次].驱动文件名 = 驱动名) 返回 (真) 跳出循环 () .如果真结束 .计次循环尾 () 返回 (假) .子程序 枚举系统驱动, 整数型, , 枚举驱动,成功返回驱动数量,失败返回0 .参数 驱动文件名, 内核驱动成员, 数组 .局部变量 Ret, 整数型 .局部变量 ModulesInfo, MODULES .局部变量 i, 整数型 .局部变量 x, 整数型 .局部变量 驱动名称, 文本型, , "0" .局部变量 位置, 整数型 .局部变量 判断函数, 整数型 .局部变量 装载类型, 内核驱动成员 .局部变量 内存申请, 整数型 清除数组 (驱动名称) NtQuerySystemInformation (11, 0, 0, Ret) 内存申请 = 申请内存 (Ret × 2, 真) NtQuerySystemInformation (11, 内存申请, Ret × 2, Ret) CopyMemory (ModulesInfo, 内存申请, GlobalSize (ModulesInfo)) 加入成员 (驱动名称, 到文本 (ModulesInfo.ModuleInformation.ImageName)) i = ModulesInfo.dwNumberOfModules 判断函数 = i .判断循环首 (i > 1) i = i - 1 内存申请 = 内存申请 + 71 × 4 CopyMemory (ModulesInfo, 内存申请, GlobalSize (ModulesInfo)) 加入成员 (驱动名称, 到文本 (ModulesInfo.ModuleInformation.ImageName)) .判断循环尾 () .计次循环首 (取数组成员数 (驱动名称), x) 位置 = 倒找文本 (驱动名称 [x], “\”, , 假) 装载类型.驱动文件名 = 取文本右边 (驱动名称 [x], 取文本长度 (驱动名称 [x]) - 位置) 加入成员 (驱动文件名, 装载类型) .计次循环尾 () .如果 (判断函数 > 1) 返回 (取数组成员数 (驱动名称)) .否则 返回 (0) .如果结束 释放内存 (内存申请)
运行结果:
以上是“易语言枚举电脑驱动如何判断是否存在指定驱动”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!