delphi 快速读取内存字符串

delphi搜索内存中字符串、比如:http://www.baidu.com类似这样的网站地址、在0x10000000到0x50000000这块地址中搜索、但发现循环读取... delphi 搜索内存中字符串、比如:http://www.baidu.com 类似这样的网站地址、在0x10000000 到 0x50000000 这块地址中搜索、但发现循环读取的时候、速度惊人(慢)

var
I : Integer;
ScanStarAdd,ScanEndAdd ,ss: Dword;
Temp : array[0..15] of char;
for I :=ScanStarAdd to ScanEndAdd - 1 do
begin
ReadProcessMemory( ProcessHwnd, pointer(ScanStarAdd ),@Temp,16,SS) ;
if checkUrl( Temp ) then
begin
/////保存当前网站地址
end;
ScanStarAdd := ScanStarAdd + $1;
application..ProcessMessages;
end;

貌似这样读取非常的不行、
看到CE那样的工具挺快的、就是多线程 学的有点迷糊
展开
 我来答
lake_cx
2010-12-04 · TA获得超过166个赞
知道小有建树答主
回答量:209
采纳率:0%
帮助的人:178万
展开全部
Temp : array[0..15] of char;
你这缓冲太小了,使用GetMem获取几M的内存然后去搜索会快一些
checkUrl的算法要优化
ScanStarAdd := ScanStarAdd + $1;不能这样向后推移,必须一次一次推移缓冲区大小-URL长度的字节数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
FengLinYuShu
2010-12-02 · 超过25用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:90.9万
展开全部
可以一次多读一些, 然后再在内存中找, 应该快很多! 缺点是比较占内存
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式