求这段VB代码解释(很短)急!!

来源:百度知道 编辑:UC知道 时间:2024/06/22 03:08:41
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesRead As Long) As Long '这里要注意的是。用VB自带的API浏览器声明是错的。可能是我用的盗版VB吧。
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten 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 GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Lon

函数:
ReadProcessMemory()
读取指定进程的内存数据,成功返回0。
参数:
hProcess:进程句柄,必须是可访问进程。
lpBaseAddress:指向进程欲读取的基地址,在数据读取时系统将以此确定读取的数据范围是否可访问。不可访问时操作失败。
lpBuffer:用于接收数据的缓冲地址
nSize:读取的数据字节大小.
lpNumberOfBytesRead:返回的实际读取大小,如果为NULL则不返回。

函数:
WriteProcessMemory
写入数据到指定进程的内存,成功返回0。
参数:
hProcess:进程句柄,必须是可访问进程。
lpBaseAddress:指向进程欲写入的基地址。
lpBuffer:写入数据的缓冲地址
nSize:写入的数据字节大小.
lpNumberOfBytesRead:返回的实际写入大小,如果为NULL则不返回。

函数:
GetWindowThreadProcessId
得到窗口进程ID
参数:
hWnd:窗口进程
lpdwProcessId:返回进程句柄
返回:
进程ID

函数:
CloseHandle
关闭句柄
参数:
hObject:句柄

函数:
FindWindow
查找窗口
参数:
lpClassName:窗体类名
lpWindowName:窗体名

整个程序定时查找指定窗口是否存在,以判断是否启动该程序,然后启动定时修改指定位置的内存数据.

Private Sub Timer2_Timer()
Dim hwnd As Long
Dim PId As Long
Dim pHandle As Long
hwnd = FindWindow(vbNullString, "