网上很多读取内存的代码,大部分都像下面这样的,但我觉得不大合理主要是调用GetMemoryData这个函数,读一次,就要打开进程句柄,然后再关闭一次
OpenProcess
CloseHandle pHandle
有时候要读几十次,这样就连续的打开关闭很多次,似乎不大合理,不知道我这样的认为是否正确?
我觉得修改成打开一次,然后直到不需要读取,再关闭Private Function GetMemoryData(lpADDress As Long) As Long
      Dim hwnd As Long
      Dim pid As Long
      Dim pHandle As Long
      hwnd = FindWindow(vbNullString, "欢乐斗地主")
      GetWindowThreadProcessId hwnd, pid
      pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
      ReadProcessMemory pHandle, ByVal lpADDress, ByVal VarPtr(GetMemoryData), 2, 0&
      CloseHandle pHandle
End Function