我正在玩网络游戏精灵,最近看到一篇做外挂的文章,于是仿照着做了个最简单的,下面是我写的改鬼的程序,编译是通过了,可是用计划任务试试效果的时候,失败了,退出精灵发现提示Couldn't get a process handle,这是怎么回事噢,有人提示我说是PROCESS_ALL_ACCESS没有定义,弄不明白哎,请教教我哦,我初学VB的,很多不懂,下面是源程序了,大家帮忙啊,谢谢!  
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 WriteProcessMemory 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 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 Sub Form_Load()
    Dim hwnd As Long ' 储存 FindWindow 函数返回的句柄
    Dim pid As Long ' 储存进程标识符( Process Id )
    Dim pHandle As Long ' 储存进程句柄
    hwnd = FindWindow(vbNullString, "精灵")
    If (hwnd = 0) Then
        MsgBox "Window not found!"
        Exit Sub
    Else
        MsgBox "found!!!"
    End If    GetWindowThreadProcessId hwnd, pid
    
    ' 使用进程标识符取得进程句柄,就象开门进入
    pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
    If (pHandle = 0) Then
        MsgBox "Couldn't get a process handle!"
        Exit Sub
    End If
    ' 在内存地址中写入你要修改的值,243C4DD是商店回城在内存中的地址,2是我们要修改的值,为什么要改成2呢?2是鬼卷的代码,原来的是1,1是回里城的代码,后面一个1是字节数
    WriteProcessMemory pHandle, &H243C4DD, Chr$(2), 1, 0&
    ' 关闭进程句柄
    CloseHandle pHandle
End Sub