欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

vfp 搜寻内存速度

更新时间: 2014-01-05 02:27:50 责任编辑: Author_N1

 

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

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:27:50
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/10121/
本文WWW.DOC100.NET DOC100.NET版权所有。