delphi ReadProcessMemory 输入进程ID 输入读取地址  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi ReadProcessMemory 输入进程ID 输入读取地址


procedure TForm6.Button1Click(Sender: TObject);  
var  
  Ghwnd: HWND;  
  ProcID: Cardinal;  
  Process: THandle;  
  lpBaseAddress: Pointer;  
  nSize: SIZE_T;  
  lpNumberOfBytesRead: SIZE_T;  
  
//  lpBuffer: array [0 .. 500] of Char;//读取字符串正常  
    lpBuffer:DWORD;  
    cds:TClientDataSet;  
    dwSize:DWORD;  
begin  
  
  // Ghwnd:=FindWindow('TianLongBaBu WndClass','Caption1');  
  ProcID := StrToInt(EditProcID.Text);//输入进程ID  
  lpBaseAddress := Pointer(StrToInt(EditAddr.Text));//输入要读取的进程内地址  
  
  nSize := SizeOf(tClientDataSet );  
  // GetWindowThreadProcessId(Ghwnd, ProcID); //  
  Process := OpenProcess(PROCESS_ALL_ACCESS, False, ProcID); // PROCESS_VM_READ  取得进程句柄  
  ReadProcessMemory(Process, lpBaseAddress, @cds, nSize, lpNumberOfBytesRead); // dwSize    lpNumberOfBytesRead:THandle
//  Caption := PChar(lpBuffer);  
DataSource1.DataSet := cds;  
end;  

推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.087899923324585 seconds