VFP 搜索内存速度!
lpNumberOfBytesRead=0
hProcHeap = GetProcessHeap()
AdrStr = HeapAlloc(hProcHeap,0,4)
lpNumberOfBytesRead=0
GetWindowThreadProcessId(uHwnd,@PID)
hProcess = OpenProcess(0x1F0FFF,0,PId)
FOR dzStart=0x5000000 TO 0X59FFFFF
ReadProcessMemory(hProcess, dzStart, AdrStr, 6,@lpNumberOfBytesRead)
l1 =STRCONV(SYS(2600,AdrStr,6),2)
ReadProcessMemory(hProcess, dzStart+320, AdrStr, 6,@lpNumberOfBytesRead)
l2 =STRCONV(SYS(2600,AdrStr,6),2)
IF l1=='123456'.AND.l2=='654321'
EXIT
ENDIF
ENDFOR
=CloseHandle(hProcess)
=CloseHandle(PID)
以上是我搜索内存确定 地址的方法!
觉得很慢,不知那些地方能够改进,或者有其他更好的方法,谢谢各位老师!
[解决办法]
玩VFP玩到内存搜索,还不如用心去玩C++,毕竟现在使用VFP很少了
[解决办法]
用 MyFll.fll 中的 函数名:MemRead(nAddress,nBytes)
试试速度和准确度如何
缩写:memr
读取指定地址的内存,注意,只能读取本进程的内存
返回值:
字符型
参数:
nAddress:整型,内存地址,比如0x12fdc4
nBytes :整型,要读取的字节数
示例代码
Set Library To myfll
?MemRead(0x12fdc4,60)
Set Library To
[解决办法]
你是一个优秀的探路者,后来的VFPER有福了
[解决办法]
你还不如一开始就用 HeapAlloc 分配 1w 个字节的缓存, 并一次将另一个进程的那 1w 个字节的内容全部复制过来,之后的搜索就在自己的进程堆中处理了