ReadProcessMemory 在vb中不能读取的问题
发布网友
发布时间:2023-09-15 21:28
我来回答
共2个回答
热心网友
时间:2024-08-30 09:56
==================================
Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
==================================
这个函数从定义的进程中读取内存。这个被读区域必须是可操作的。
hProcess :将要读内存的进程。在win CE中,在适当的权限下,用 OpenProcess 将返回这个进程的handle
lpBaseAddress:指向这个特定进程内存地址的指针。
pBuffer:获取内容的存放缓存空间。
nSize:定义了从特定进程读入数据所需空间大小。
lpNumberOfBytesRead:实际传递到定义的缓存的byte数。
返回值:
如果成功,则返回 非零值,否则为失败。
*******************************************
如果你读取的是4字节的内存内容,不妨把上述语句改为:
ReadProcessMemory hProcess, mi.BaseAddress, aaa(0), 4, 0&
热心网友
时间:2024-08-30 09:56
1 是否有Option Base 1 强制数组下标存在,如果是 aaa(0) 这个错误必出.
2 inga是否有值,如果没成功定义数组大小,同上...
3 如果要按string类型读出,需要使用StrConv(aaa(0), vbUnicode) 语句转化.
4 函数 的 ByVal (mi.BaseAddress) 无地址参数,无法获取内存数据.