中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > .NET > 临时文章
VB 从零开始编外挂(六)
作者:未知 时间:2005-07-27 21:35 出处:CSDN 责编:chinaitpower
              摘要:VB 从零开始编外挂(六)
--------------------------------------------------------------------------------------------------------------------------------------------------------
应用实战
--------------------------------------------------------------------------------------------------------------------------------------------------------
需要VB API函数:
FindWindow
 
GetWindowThreadProcessId 
OpenProcess
ReadProcessMemory
CloseHandle
--------------------------------------------------------------------------------------------------------------------------------------------------------
相关API声明:
FindWindow

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

GetWindowThreadProcessId 

Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long)
As Long

OpenProcess

Private Declare Function OpenProcess Lib  "kernel32" (ByVal  dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal  dwProcessId As Long)
As Long

ReadProcessMemory

Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long

CloseHandle

Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long)
As Long

GetCurrentProcess

Private Declare Function GetCurrentProcess Lib "kernel32" ()
As Long
--------------------------------------------------------------------------------------------------------------------------------------------------------
需要的控件:LabelTimer(interval不为空)、Text
--------------------------------------------------------------------------------------------------------------------------------------------------------
定义函数:
Dim SetHp As Integer        ' 定义设定的体力值
Dim SetMp As Integer         ' 定义设定的魔法值
Dim NowHp As Long           ' 定义目前的体力值
Dim NowMp As Long           ' 定义目前的魔法值
Dim MaxHp As Long           ' 定义角色的最高体力值
Dim MaxMp As Long          ' 定义角色的最高魔法值
Dim DiZhi As Long             
'定义内存地址函数
Dim hwnd As Long              ' 储存 FindWindow 函数返回的句柄
--------------------------------------------------------------------------------------------------------------------------------------------------------
代码:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long)
As Long
Private Declare Function OpenProcess Lib  "kernel32" (ByVal  dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal  dwProcessId As Long) As Long
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long)
As Long
Private Declare Function GetCurrentProcess Lib "kernel32" ()
As Long
Dim SetHp As Integer        ' 定义设定的体力值
Dim SetMp As Integer         ' 定义设定的魔法值
Dim NowHp As Long           ' 定义目前的体力值
Dim NowMp As Long           ' 定义目前的魔法值
Dim MaxHp As Long           ' 定义角色的最高体力值
Dim MaxMp As Long          ' 定义角色的最高魔法值
Dim DiZhi As Long              '定义内存地址函数

Private Function ncnr(lpADDress As Long) As Integer
    ' 声明一些需要的变量
    Dim hwnd As Long        ' 储存 FindWindow 函数返回的句柄
    Dim pid As Long         ' 储存进程标识符( Process Id )
    Dim pHandle As Long     ' 储存进程句柄
    hwnd = FindWindow(vbNullString, "封神榜·网络版")
    ' 取得进程标识符
    GetWindowThreadProcessId hwnd, pid
    ' 使用进程标识符取得进程句柄
    pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
    ' 在内存地址中读取数据
    ReadProcessMemory pHandle, lpADDress, ByVal VarPtr(ncnr), 4, 0&
    ' 关闭进程句柄
    CloseHandle hProcess
End Function
Const STANDARD_RIGHTS_REQUIRED = &HF0000
Const SYNCHRONIZE = &H100000
Const SPECIFIC_RIGHTS_ALL = &HFFFF
Const STANDARD_RIGHTS_ALL = &H1F0000
Const PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF
Const PROCESS_VM_OPERATION = &H8&
Const PROCESS_VM_READ = &H10&
Const PROCESS_VM_WRITE = &H20&

Private Sub Form_Load()
  ' 体力:07F68F3 这里替换你所搜索到的地址  魔法:07F6860 同前
    DiZhi = &H07F68F3
    Timer1.Enabled = True
    Timer2.Enabled = False
    Timer3.Enabled = False
End Sub

Private Sub Timer1_Timer()
    Dim hwnd As Long
    hwnd = FindWindow(vbNullString, "封神榜·网络版")
   
    If hwnd = 0 Then
        Label12.Caption = "游戏未加载"
        Timer1.Enabled = True
        Timer2.Enabled = False
        Timer3.Enabled = False
        Exit Sub
    End If

    Label12.Caption = "游戏已加载"
    SetHp = Text1.Text          ' 获取设定的体力值
    SetMp = Text2.Text          ' 获取设定的魔法值
    NowHp = ncnr(DiZhi)         ' 获取当前的体力值
    NowMp = ncnr(DiZhi + 12)    ' 获取当前的魔法值
    MaxHp = ncnr(DiZhi + 4)     ' 获取角色的最高体力值
    MaxMp = ncnr(DiZhi + 16)    ' 获取角色的最高魔法值
    Label3.Caption = Str(NowHp) + "/" + Str(MaxHp)      ' 显示角色体力值状态
    Label4.Caption = Str(NowMp) + "/" + Str(MaxMp)      ' 显示角色魔法值状态

    If Check1.Value Then
        Timer2.Enabled = True
    Else
        Timer2.Enabled = False
    End If
    If Check2.Value Then
        Timer3.Enabled = True
    Else
        Timer3.Enabled = False
    End If
End Sub

Private Sub Timer2_Timer()
    ' 体力值小于设定值按下数字键1
    If (NowHp) < SetHp Then
        SendKeys "1"
    End If
End Sub

Private Sub Timer3_Timer()
    ' 魔法值小于设定值按下数字键2
    If (NowMp) < SetMp Then
        SendKeys "2"
    End If
End Sub
--------------------------------------------------------------------------------------------------------------------------------------------------------
软件截图:

--------------------------------------------------------------------------------------------------------------------------------------------------------
点击给我留言
--------------------------------------------------------------------------------------------------------------------------------------------------------


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有