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
// Caption := PChar(lpBuffer);
DataSource1.DataSet := cds;
end;
ReadProcessMemory 输入进程ID 输入读取地址
最新推荐文章于 2022-08-06 23:15:25 发布