首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

VFP 搜寻内存速度

2013-07-29 
VFP 搜索内存速度!lpNumberOfBytesRead0hProcHeap GetProcessHeap()AdrStr HeapAlloc(hProcHeap,0,4)

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 个字节的内容全部复制过来,之后的搜索就在自己的进程堆中处理了

热点排行