CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  Windows SDK/API

请高手查错指点..谢谢!!

楼主jiangmenghen(江梦痕)2004-12-03 20:37:51 在 Delphi / Windows SDK/API 提问

我照一个文章做了以下代码查一个指定程序的基址,但一查就没有响应,请问是不是哪里错了!?  
   
  具体应该怎么做!??  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
          P   :   Pointer;  
          MemInfo   :     MEMORY_BASIC_INFORMATION;  
          MemSize   :   LongWord;  
          ProHWND   :   HWND;  
  begin  
  ProHWND   :=   OpenProcess(PROCESS_ALL_ACCESS,false,ProcessID);  
          P   :=   nil;  
          MemSize   :=   SizeOf(MemInfo);//这一句不明白为什么这么做  
          while   LongWord(p)<$80000000   do//这是查小于2G的内存吧  
          begin  
          if   MemSize<>VirtualQueryEx(ProHWND,P,MemInfo,MemSize)   then   break;  
          Memo1.Lines.Add(string(MemInfo.AllocationBase));//我用这显示查得的基址不知道这样对不对  
  end;  
  end;  
  end. 问题点数:100、回复次数:14Top

1 楼ly_liuyang(Liu Yang LYSoft http://lysoft.7u7.net)回复于 2004-12-03 21:30:19 得分 10

不是这样的方法!  
   
  用PSAPI或ToolHelp的API就能获得!  
   
  记得是查找EXE的hModule就是了  
   
  http://lysoft.7u7.netTop

2 楼xiyixiaowm50(独孤求败)回复于 2004-12-03 22:47:02 得分 0

晕死,while   LongWord(p)<$80000000   要这样用的话得多长时间才能返回呀?    
  Top

3 楼jiangmenghen(江梦痕)回复于 2004-12-04 05:00:20 得分 0

请问这样的方法不行那我到底得怎么做??  
   
   
  Top

4 楼surpassable()回复于 2004-12-07 09:19:04 得分 0

帮你顶~  
  顺便学习Top

5 楼IwantFlay(小飞)回复于 2004-12-07 09:21:56 得分 0

dingTop

6 楼dgyanyong(幸运飞龙)回复于 2004-12-08 22:16:39 得分 0

upTop

7 楼zhksoft()回复于 2004-12-10 09:47:13 得分 0

ProHWND   :=   OpenProcess(PROCESS_ALL_ACCESS,false,ProcessID);  
  ProcessID你没指定呀。  
  Top

8 楼beyondtkl(大龙驹<*好久没来了,兄弟们好吧。*>)回复于 2004-12-10 09:51:53 得分 90

先 獲得ProcessID   然後 用VirtualQueryEx獲得進程的基址Top

9 楼jiangmenghen(江梦痕)回复于 2004-12-10 14:07:14 得分 0

ProcessID   我在另外代码中获取了~~就是这个   VirtualQueryEx   不知道怎么弄!!!!  
   
  写内存   取内存数据我都可以实现!!Top

10 楼beyondtkl(大龙驹<*好久没来了,兄弟们好吧。*>)回复于 2004-12-10 15:07:14 得分 0

DWORD   VirtualQueryEx(  
      HANDLE   hProcess,         //   handle   to   process  
      LPCVOID   lpAddress,     //   address   of   region  
      PMEMORY_BASIC_INFORMATION   lpBuffer,  
                                              //   address   of   information   buffer  
      DWORD   dwLength             //   size   of   buffer  
  );  
   
  hProcess:       THandle;  
  lpAddress:     Pointer;  
  mbi:                 TMemoryBasicInformation;  
  dwLength:       DWORD;  
   
   
  VirtualQueryEx(hProcess,   lpAddress,   mbi,   dwLength);    
  其中  
   lpAddress,   mbi為返回值....  
   
  Top

11 楼surpassable()回复于 2004-12-10 15:41:05 得分 0

学习,学习~~~~~~Top

12 楼jiangmenghen(江梦痕)回复于 2004-12-11 15:16:56 得分 0

我这样到底哪错了????     怎么显示出来总不是想要的~  
   
   
  var  
  FSnapshotHandle:THandle;  
      FProcessEntry32:TProcessEntry32;  
      Ret   :   BOOL;  
      ProcessID   :   integer;  
      ProcessHndle   :   THandle;  
      s,y:string;  
      lpAddress:Pointer;  
  mbi:TMemoryBasicInformation;  
  dwLength:DWORD;  
  begin  
  FSnapshotHandle:=CreateToolhelp32Snapshot(  
  TH32CS_SNAPPROCESS,0);  
  FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);  
  Ret:=Process32First(FSnapshotHandle,FProcessEntry32);  
  y:='1.exe';  
  while   Ret   do  
  begin  
  s   :=ExtractFileName(FProcessEntry32.szExeFile);  
  if   s=y   then  
      begin  
            ProcessID:=FProcessEntry32.th32ProcessID;  
            s:='';  
            break;  
      end;  
      Ret:=Process32Next(FSnapshotHandle,FProcessEntry32);  
  end;  
  ProcessHndle:=OpenProcess(PROCESS_ALL_ACCESS,false,ProcessID);  
      VirtualQueryEx(ProcessHndle,lpAddress,   mbi,   dwLength);  
      Memo1.Lines.Add(IntToStr(Longint(@mbi.AllocationBase)));  
      Memo1.Lines.Add(IntToStr(Longint(@lpAddress)));  
      CloseHandle(ProcessHndle);  
  end;Top

13 楼maodelphi(小游)回复于 2004-12-11 18:01:36 得分 0

欢迎广大Delphi程序员到《delphi专题研讨会》到QQ群7568683  
  讨论Top

14 楼jyassassin(蓝血人)回复于 2004-12-13 16:35:02 得分 0

学习.Top

相关问题

  • 请各位帮忙查错!
  • 请指点!!
  • 请指点!
  • 急,请指点!
  • 请指点。。。。。
  • 请指点:
  • 请求指点~
  • 请指点......
  • 请指点......
  • 请指点

关键词

  • meminfo
  • memsize
  • longword

得分解答快速导航

  • 帖主:jiangmenghen
  • ly_liuyang
  • beyondtkl

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo