Ich kann diesen Code nicht kompilieren. Könnte ich Hilfe haben? Vielen Dank.So verwenden Sie WriteProcessMemory in Delphi
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;
Es zeigt in Zeile „Typen der tatsächlichen und formalen Parameter var identisch sein muss“, wo verwendet „Write“.
Können Sie dieses Verfahren als Kommentar ändern? Hast du einen Test gemacht? Für BOOL können Sie TRUE/FALSE oder 1/0 erhalten. Über SIZE_T, DWORD oder Integer sind gleich. – shinken
Sie haben nach einem Compilerfehler gefragt, den ich ausführlich behandelt habe. Was würde ich testen? Ich verstehe das nicht? –