![]() |
TimeServer im LAN
Hy Leute!
Wieder einmal stehe ich vor einem Problem! Ich Möchte einen Timeserver machen ( im Lan) der die zeiten mit den anderen clients oder die clients mit dem server abgleicht... tja nur wie mach ich das am besten ... Zeit auslesen und ausgeben ist ja nicht die welt !
Code:
und
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;
Code:
tja nur wir sage ich dem client bzw der client dem server hey gib mir deine zeit ( Hirnblockade) :D
procedure TForm1.SetTimeClick(Sender: TObject);
var SystemTime : TSystemTime; NewTime, NewDate : string; begin NewTime:= TimeToStr(Time); NewDate:= DateToStr(Date); { NewTime:= '13:58:00'; //12:00:15 NewDate:= '02.02.2001'; // 01.02.2005 } DateTimeToSystemTime(StrToDate(NewDate) + StrToTime(NewTime), SystemTime); SetLocalTime(SystemTime); PostMessage(HWND_BROADCAST, WM_TIMECHANGE, 0, 0); end; lg CF *** EDIT *** Mir ist nur eine Idee gekommen und zwar das ich den dos Command (net time \\PCNAME /set) irgendwie verknüpfe Vill hab ich auch schon zuviel gearbeitet :D *** EDIT ENDE *** |
Re: TimeServer im LAN
Wenn Du moderne Clients hast (XP, ...) so macht das ein passend konfigurierte Windows-Time-Dienst.
Für alle Windows-Clients schau dir mal ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz