本文整理自网络,侵删。
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 - 合并字符串
processid, process handle, window handle 之间的互相转换
更多相关阅读请进入《Delphi》频道 >>