小编shi*_*ken的帖子

如何在Delphi中使用WriteProcessMemory

我无法编译此代码.我可以帮忙吗?谢谢.

procedure ChangeOutsideDateTime(h: HWND; dt: TDateTime);
var
  st: TSystemTime;
  pst: Pointer;
  hDTP: Cardinal;
  hProc: THandle;
  dwWrote: DWORD;
begin
  DateTimeToSystemTime(dt, st);
  pst:= VirtualAllocEx(h, nil, SizeOf(st), MEM_COMMIT, 0);
  if pst <> nil then begin
    if GetWindowThreadProcessId(h, hDTP) > 0 then begin
      hProc:= OpenProcess(PROCESS_VM_OPERATION, false, hDTP);
      if WriteProcessMemory(hProc, pst, @st, SizeOf(st), dwWrote) > 0 then begin
        SendMessage(h, DTM_SETSYSTEMTIME, GDT_VALID, hDTP);
        CloseHandle(hProc);
      end;
    end;
    VirtualFreeEx(h, pst, 0, MEM_RELEASE);
  end;
end;
Run Code Online (Sandbox Code Playgroud)

它显示"实际和正式var参数的类型必须相同"在使用"WriteProcessMemory"的行.

delphi delphi-xe2

0
推荐指数
1
解决办法
994
查看次数

标签 统计

delphi ×1

delphi-xe2 ×1