易语言怎么通过句柄名来关闭互斥体实现游戏多开

这篇文章主要为大家展示了“易语言怎么通过句柄名来关闭互斥体实现游戏多开”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“易语言怎么通过句柄名来关闭互斥体实现游戏多开”这篇文章吧。

目前成都创新互联公司已为上千的企业提供了网站建设、域名、网站空间网站运营、企业网站设计、西区网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

DLL命令代码

.版本 2
.DLL命令 GetProcessHandleCount, 逻辑型
  .参数 hProcess, 整数型
  .参数 pdwHandleCount, 整数型, 传址
.DLL命令 DuplicateHandle, 逻辑型
  .参数 hSourceProcessHandle, 整数型
  .参数 hSourceHandle, 整数型
  .参数 hTargetProcessHandle, 整数型
  .参数 lpTargetHandle, 整数型, 传址
  .参数 dwDesiredAccess, 整数型
  .参数 bInheritHandle, 逻辑型
  .参数 dwOptions, 整数型
.DLL命令 GetCurrentProcess, 整数型
.DLL命令 ZwQueryObject, 整数型, "ntdll.dll"
  .参数 ObjectHandle, 整数型
  .参数 ObjectInformationClass, 整数型
  .参数 ObjectInformation, 字节集, 传址
  .参数 Length, 整数型
  .参数 ResultLength, 整数型, 传址
.DLL命令 CloseHandle, 逻辑型
  .参数 hObject, 整数型
.DLL命令 WideCharToMultiByte, 整数型
  .参数 CodePage, 整数型
  .参数 dwFlags, 整数型
  .参数 lpWideCharStr, 字节集
  .参数 cchWideChar, 整数型
  .参数 lpMultiByteStr, 文本型
  .参数 cchMultiByte, 整数型
  .参数 lpDefaultChar, 文本型
  .参数 lpUsedDefaultChar, 整数型
.DLL命令 OpenProcess, 整数型
  .参数 dwDesiredAccess, 整数型
  .参数 bInheritHandle, 逻辑型
  .参数 dwProcessId, 整数型
.DLL命令 CreateToolhelp32Snapshot, 整数型
  .参数 dwFlags, 整数型
  .参数 th42ProcessID, 整数型
.DLL命令 Process32First, 整数型
  .参数 hSnapshot, 整数型
  .参数 lppe, LPPROCESSENTRY32
.DLL命令 Process32Next, 整数型
  .参数 hSnapshot, 整数型
  .参数 lppe, LPPROCESSENTRY32

自定义数据类型表

.版本 2
.数据类型 句柄信息
  .成员 句柄, 整数型
  .成员 对象名, 文本型
.数据类型 LPPROCESSENTRY32
  .成员 dwSize, 整数型
  .成员 cntUsage, 整数型
  .成员 th42ProcessID, 整数型
  .成员 th42DefaultHeapID, 整数型
  .成员 th42ModuleID, 整数型
  .成员 cntThreads, 整数型
  .成员 th42ParentProcessID, 整数型
  .成员 pcPriClassBase, 整数型
  .成员 dwFlags, 整数型
  .成员 szExeFile, 字节型, , "260"

关闭互斥体游戏多开的代码

.版本 2
.程序集 窗口程序集_启动窗口
.程序集变量 记录句柄, 整数型
.子程序 _开启按钮_被单击
时钟1.时钟周期 = 200
.子程序 启动多开
.局部变量 句柄列表, 句柄信息, , "0"
.局部变量 计次, 整数型
.局部变量 进程句柄, 整数型, , "0"
.局部变量 l1, 整数型
取进程句柄 (“shiqiee.exe”, 进程句柄)
.计次循环首 (取数组成员数 (进程句柄), l1)
  枚举句柄 (进程句柄 [l1], 句柄列表)
  .计次循环首 (取数组成员数 (句柄列表), 计次)
    .如果真 (句柄列表 [计次].对象名 = “\Device\HarddiskVolume4\Windows\eelock1.txt” 或 句柄列表 [计次].对象名 = “\Device\HarddiskVolume4\Windows\eelock0.txt” 或 句柄列表 [计次].对象名 = “\Sessions\1\BaseNamedObjects\SA_MUTE0” 或 句柄列表 [计次].对象名 = “\Sessions\1\BaseNamedObjects\SA_MUTE1”)
      关闭句柄 (进程句柄 [l1], 句柄列表 [计次].句柄)
    .如果真结束
  .计次循环尾 ()
.计次循环尾 ()
.子程序 枚举句柄, 整数型
.参数 进程句柄, 整数型
.参数 句柄列表, 句柄信息, 数组
.局部变量 句柄信息, 句柄信息
.局部变量 HandleCount, 整数型
.局部变量 sHandle, 整数型
.局部变量 tHandle, 整数型
.局部变量 i, 整数型
.局部变量 Buf, 字节集
.局部变量 len, 整数型
.如果真 (GetProcessHandleCount (进程句柄, HandleCount))
  .判断循环首 (HandleCount > i 且 sHandle < 65536)
    sHandle = sHandle + 4
    .如果真 (DuplicateHandle (进程句柄, sHandle, GetCurrentProcess (), tHandle, 0, 假, 2))
      i = i + 1
      句柄信息.句柄 = sHandle
      句柄信息.对象名 = “”
      Buf = 取空白字节集 (8192)
      .如果真 (ZwQueryObject (tHandle, 1, Buf, 8192, 0) = 0)
        len = 取字节集数据 (Buf, 2, )
        Buf = 取字节集中间 (Buf, 9, len)
        句柄信息.对象名 = UnicodeToAnsi (Buf)
      .如果真结束
      CloseHandle (tHandle)
      加入成员 (句柄列表, 句柄信息)
    .如果真结束
  .判断循环尾 ()
.如果真结束
返回 (i)
.子程序 UnicodeToAnsi, 文本型
.参数 Unicode, 字节集
.局部变量 ansi_len, 整数型
.局部变量 unicode_len, 整数型
.局部变量 ansi, 文本型
unicode_len = 取字节集长度 (Unicode) ÷ 2
ansi_len = WideCharToMultiByte (936, 0, Unicode, unicode_len, ansi, 0, “”, 0)
ansi = 取空白文本 (ansi_len)
WideCharToMultiByte (936, 0, Unicode, unicode_len, ansi, ansi_len, “”, 0)
返回 (ansi)
.子程序 关闭句柄, 逻辑型
.参数 进程句柄, 整数型
.参数 对象句柄, 整数型
.局部变量 Handle, 整数型
.如果 (DuplicateHandle (进程句柄, 对象句柄, GetCurrentProcess (), Handle, 0, 假, 1))
  CloseHandle (Handle)
  返回 (真)
.否则
  返回 (假)
.如果结束
.子程序 取进程句柄, 整数型
.参数 进程名, 文本型
.参数 进程句柄, 整数型, 可空 数组
.局部变量 LPPROCESSENTRY32, LPPROCESSENTRY32
.局部变量 hSnapshot, 整数型
.局部变量 hProcess, 整数型
.局部变量 j, 整数型
hSnapshot = CreateToolhelp32Snapshot (2, 0)
.如果真 (hSnapshot ≠ -1)
  LPPROCESSENTRY32.dwSize = 296
  j = Process32First (hSnapshot, LPPROCESSENTRY32)
  .判断循环首 (j ≠ 0)
    .如果真 (到小写 (进程名) = 到小写 (到文本 (LPPROCESSENTRY32.szExeFile)))
      hProcess = OpenProcess (2035711, 假, LPPROCESSENTRY32.th42ProcessID)
      加入成员 (进程句柄, hProcess)
    .如果真结束
    j = Process32Next (hSnapshot, LPPROCESSENTRY32)
  .判断循环尾 ()
  CloseHandle (hSnapshot)
  返回 (hProcess)
.如果真结束
返回 (0)
.子程序 _时钟1_周期事件
启动多开 ()
.子程序 _关闭按钮_被单击
时钟1.时钟周期 = 0

运行结果:

易语言怎么通过句柄名来关闭互斥体实现游戏多开

以上是“易语言怎么通过句柄名来关闭互斥体实现游戏多开”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


分享名称:易语言怎么通过句柄名来关闭互斥体实现游戏多开
当前路径:http://ybzwz.com/article/iegjis.html