このコードをコンパイルできません。助けてもらえますか?ありがとう。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;
それは「WriteProcessMemory」を使用している行で、「実際の正式のvarパラメータの種類が同一でなければなりません」と表示されます。実際の正式のvarパラメータの
あなたのコメントとして、その手順を変更することはできますか?あなたはテストをしましたか? BOOLでは、TRUE/FALSEまたは1/0を取得できます。 SIZE_T、DWORDまたは整数については同じです。 – shinken
コンパイラのエラーについては、包括的に説明しました。私は何のテストをするだろうか?私はそれを理解していないのですか? –