易语言枚举电脑驱动判断是否存在指定驱动的代码

 更新时间:2018年11月26日 11:46:19   作者:易语言源码教程  
今天小编就为大家分享一篇关于易语言枚举电脑驱动判断是否存在指定驱动的代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

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)
.如果结束
释放内存 (内存申请)

运行结果:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • 实例讲解易语言复制数组

    实例讲解易语言复制数组

    在本篇内容里小编为网友们分享了关于易语言复制数组的方法内容,需要的朋友们可以学习下。
    2018-12-12
  • 易语言通过算法计算出酷狗音乐下载地址的代码

    易语言通过算法计算出酷狗音乐下载地址的代码

    今天小编就为大家分享一篇关于易语言通过算法计算出酷狗音乐下载地址的代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-11-11
  • 易语言求次方命令使用讲解

    易语言求次方命令使用讲解

    今天小编就为大家分享一篇关于易语言求次方命令使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-11-11
  • 易语言打开图片文件对话框应用详解

    易语言打开图片文件对话框应用详解

    在本篇内容里小编给各位分享了关于易语言打开图片文件对话框应用的相关知识点内容,有需要的朋友们可以学习下。
    2019-01-01
  • 易语言取主机名命令使用讲解

    易语言取主机名命令使用讲解

    今天小编就为大家分享一篇关于易语言取主机名命令使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-11-11
  • 易语言初始化的方法步骤

    易语言初始化的方法步骤

    在本篇内容里小编整理了关于易语言初始化的方法和步骤,有需要的朋友们可以参考下。
    2018-11-11
  • 易语言皮肤加载方法

    易语言皮肤加载方法

    在本篇内容里小编给大家分享的是关于易语言皮肤加载的方法知识点,有兴趣的朋友们可以跟着学习下。
    2018-12-12
  • 编写高质量易语言代码注意点

    编写高质量易语言代码注意点

    在本篇文章里我们给大家分享了关于如何编写高质量易语言代码的相关内容,有需要的朋友们阅读下。
    2018-10-10
  • 易语言设置画板绘画时的画笔类型

    易语言设置画板绘画时的画笔类型

    今天小编就为大家分享一篇关于易语言设置画板绘画时的画笔类型,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-11-11
  • 易语言通过路径来判断是不是在压缩包内运行的代码

    易语言通过路径来判断是不是在压缩包内运行的代码

    今天小编就为大家分享一篇关于易语言通过路径来判断是不是在压缩包内运行的代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-11-11

最新评论