Jak zmienic czas systemowy w systemach WinXP ?
woadomo ze funkcja SetLocalTime ( _SYSTEMTIME ) nie zadziała gdyz nie ma uprawnie do zmiany czasu a nastepujacy fragment nie działa gdzie jest błąd ?

const
  ADJUST_PRIV = TOKEN_QUERY or TOKEN_ADJUST_PRIVILEGES;
  TIME_PRIV = 'SE_SYSTEMTIME_NAME';
  PRIV_SIZE   = sizeOf(TTokenPrivileges);
var
  p_time : _SYSTEMTIME ;
  Len: DWORD;
  TokenPriv, Dummy: TTokenPrivileges;
  Token: THandle;

p_time.wYear := YearOf(nowy_czas);
  p_time.wMonth := MonthOf(nowy_czas);
  p_time.wDay :=  DayOf(nowy_czas );
  p_time.wHour := HourOf (nowy_czas);
  p_time.wMinute := MinuteOf (nowy_czas);
  p_time.wSecond := SecondOf (nowy_czas);

 if not OpenProcessToken(GetCurrentProcess(), ADJUST_PRIV, Token) then
       F_GLOWNA.o_log.Insert(0,'OpenProcessToken time failed');
    if not LookupPrivilegeValue(nil, TIME_PRIV,TokenPriv.Privileges[0].Luid) then
        F_GLOWNA.o_log.Insert(0,'LookupPrivilegeValue  time failed');

    TokenPriv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
    TokenPriv.PrivilegeCount := 1;  // One privilege to set

    if not AdjustTokenPrivileges(Token, false, TokenPriv, PRIV_SIZE,Dummy, Len) then
    F_GLOWNA.o_log.Insert(0,'AdjustTokenPrivileges  time failed'); 

   SetLocalTime (p_time);

Prawdobodobnie bład tkwi w przypisaniu 
 TIME_PRIV = 'SE_SYSTEMTIME_NAME';