梦的忧伤 发表于 2011-4-7 07:49:44

vb的研究員請進...小弟有語言上的問題想指教一下!

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      '
    Dim pid As Long      '
    Dim pHandle As Long    '
    hwnd = FindWindow(vbNullString, "DIEmWin")   


    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()

    DiZhi = &H52EFC38
    Timer1.Enabled = True
    Timer2.Enabled = False
    Timer3.Enabled = False
End Sub


Private Sub Timer1_Timer()
    Dim hwnd As Long
    hwnd = FindWindow(vbNullString, "DIEmWin")
   
    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 + &HA1)      ' ?取?前的体力值
    NowMp = ncnr(DiZhi + &HA5)    ' ?取?前的魔法值
    MaxHp = ncnr(DiZhi + &H25F)    ' ?取角色的最高体力值
    MaxMp = ncnr(DiZhi + &H273)    ' ?取角色的最高魔法值
    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()

    If (NowHp) < SetHp Then
      SendKeys "1"
    End If
End Sub

Private Sub Timer3_Timer()

    If (NowMp) < SetMp Then
      SendKeys "2"
    End If
End Sub

有顏色字句的地方...我按運行是都會說我編譯語言錯誤~~說我沒有定義sub或Function
整個編字過程那裡有錯呢?請大大指教一下

niufen 发表于 2011-4-7 07:50:00

FindWindow函数没定义

zhangjian950617 发表于 2011-4-7 07:50:10

Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Any, ByVal lpWindowName As Any) As Long'放到模块中

qinyi75 发表于 2011-4-7 07:50:19

跟住他說出錯...SetHp = Text1.Text<---這一句= =為什麼?
已解決
页: [1]
查看完整版本: vb的研究員請進...小弟有語言上的問題想指教一下!