можно вот так
| Код | procedure TForm1.Button1Click(Sender: TObject); var St:_SYSTEMTIME; hToken:THandle; privValue:Int64; tkp:TOKEN_PRIVILEGES; ReturnLength:Cardinal; begin //---------Если не хватает привилегий if not OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken ) then ShowMessage('OpenProcessError'); if not LookupPrivilegeValue( nil, 'SeSystemTimePrivilege', privValue ) then begin CloseHandle(hToken); ShowMessage('LookupPriv Error'); end;
tkp.PrivilegeCount:= 1; tkp.Privileges[0].Luid := privValue; tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; if not AdjustTokenPrivileges(hToken,false,tkp,SizeOf(tkp),tkp,ReturnLength) then showmessage('privilege error'); CloseHandle( hToken );
// ------------ увеличиваем год на 1 // возможны и другие варианты GetSystemTime(St); inc(St.wYear); SetSystemTime(st); end;
|
|