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;  

相关阅读 >>

winapi 字符及字符串函数(9): lstrcat - 合并字符串

orangeui作者开源作品

processid, process handle, window handle 之间的互相转换

通过崩溃地址找错误行数之Delphi

Delphi动态创建30个按钮,每行6个共5行,顺序排列

Delphi复制文件夹内所有文件

Delphi 传输文件例子的核心代码

Delphi的dll中获取文件路径

Delphi使用sqlite数据库时的中文路径问题

Delphi 守护进程 杀死自己的进程再重新启动自己

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...