Jak ustawić czas w systemie (ale wstyd)

0

Witam.

Piszę w delphi już 4 lata i nigdy nie musiałem ustawiać czasu w Windows. Teraz nadeszła ta chwila, a tu Zonk!. Nie ma setTime. Wiem że na pewno jest to jakaś mała, chora funkcja. W pascalu nie bylo problemu. A tu... przeszukałem help'a całą sekcję dot. dataTime, wiele innych i nic. Już nawet w WinApi zacząłem grzebać ale też mi nie wychodzi

Jak to do cholery zrobić!

Ale wstyd [wstyd]

P.S.
nie obraże się jak mnie wyśmiejecie tylko mi pomóżcie bo mnie już krew zalewa [???]

0
function SetPCSystemTime(dDateTime: TDateTime): Boolean; 
const 
  SE_SYSTEMTIME_NAME = 'SeSystemtimePrivilege'; 
var 
  hToken: THandle; 
  ReturnLength: DWORD; 
  tkp, PrevTokenPriv: TTokenPrivileges; 
  luid: TLargeInteger; 
  dSysTime: TSystemTime; 
begin 
  Result := False; 
  if (Win32Platform = VER_PLATFORM_WIN32_NT) then 
  begin 
    if OpenProcessToken(GetCurrentProcess, 
      TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then 
    begin 
      try 
        if not LookupPrivilegeValue(nil, SE_SYSTEMTIME_NAME, luid) then Exit; 
        tkp.PrivilegeCount := 1; 
        tkp.Privileges[0].luid := luid; 
        tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; 
        if not AdjustTokenPrivileges(hToken, False, tkp, SizeOf(TTOKENPRIVILEGES), 
          PrevTokenPriv, ReturnLength) then 
          Exit; 
        if (GetLastError <> ERROR_SUCCESS) then 
        begin 
          raise Exception.Create(SysErrorMessage(GetLastError)); 
          Exit; 
        end; 
      finally 
        CloseHandle(hToken); 
      end; 
    end; 
  end; 
  DateTimeToSystemTime(dDateTime, dSysTime); 
  Result := Windows.SetLocalTime(dSysTime); 
end;  

Mam prośbe na przyszłość - szukaj na <url>www.torry.net</url> ;-)

0

O kurcze! tego się nie spodziewałem. Myślałem że będzie to po porostu jakaś funkcja.

Tak czy siak dzięki <B>tomksoft</b>. Mam nadzieje że zadziała [browar]

0

Nie ma za co ;-)
Ja też mam taką nadzieje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1