首先是按键精灵的源码- WinminePath = "winmine.exe"
- WinmineTitle = "扫雷"
- Call RunApp(WinminePath)
- Delay 1000
- WinmineHwnd=Plugin.Window.Find(0,WinmineTitle)
- If WinmineHwnd = 0 Then
- Delay 1000
- WinmineHwnd=Plugin.Window.Find(0,WinmineTitle)
- End If
- If WinmineHwnd=0 Then
- Call Plugin.File.WriteFileEx(TestFilePath,"☆" & WinminePath & "运行失败")
- Else
- Dim x, y
- x=Plugin.Memory.Read32Bit(WinmineHwnd,&h1005334)
- y=Plugin.Memory.Read32Bit(WinmineHwnd,&h1005338)
- ClickX = 18
- ClickY = 56
- Call Plugin.Bkgnd.LeftClick(WinmineHwnd,ClickX,ClickY)
- For i = 0 To y-1
- For j = 0 To x-1
- Val = Plugin.Memory.Read8Bit(WinmineHwnd,&h1005360+(j+i*32+1))
- If Val = &h8F or Val = &h8A Then
- Call Plugin.Bkgnd.RightClick(WinmineHwnd,ClickX + 16*j,ClickY + 16*i)
- Else
- Call Plugin.Bkgnd.LeftClick(WinmineHwnd,ClickX + 16*j,ClickY + 16*i)
- End If
- Next
- strview = strview & vbcrlf
- Next
复制代码 接下来是TC的源码:
- 进程句柄=进程.获取进程句柄("扫雷")
- 窗口句柄=进程.获取窗口句柄(进程句柄)
- 如果(进程句柄==0)
- 辅助.消息框("扫雷游戏没有打开或者打开失败!")
- 返回 0
- 如果结束
- x=进程.读4byte(进程句柄,#1005334)
- y=进程.读4byte(进程句柄,#1005338)
- 点击x = 18
- 点击y = 56
- 窗口.鼠标左键单击(窗口句柄,点击x,点击y)
- 遍历(i=0;i<y;i++)
- 遍历(j=0;j<x;j++)
- 内容=进程.读byte(进程句柄,#1005360+(j+i*32+1))
- 如果(内容==#8f||内容==#8a)
- 窗口.鼠标右键单击(窗口句柄,点击x+16*j,点击y+16*i)
- 否则
- 窗口.鼠标左键单击(窗口句柄,点击x+16*j,点击y+16*i)
- 如果结束
- 遍历结束
- 遍历结束
复制代码 耗时对比
大家可以自己测试一下,希望可以给一些学过按键的朋友一点帮助
测试源码分享回复可下载:
|