Hola _LEOLe he hechado un vistazo al código, pero no se que pasa que en un windows 98 SE no me deja cambiar la hora y en un Win2K si, ya estoy un poco de los nervios, no se que pasa, por si ayuda de algo lo estoy haciendo así:
SYSTEMTIME tiempo;
AnsiString texto;
HANDLE ProcessHandle, TokenHandle;
LUID tmpLuid;
TOKEN_PRIVILEGES tkp, tkpNew;
DWORD dwBufferNeeded;
DateTimeToSystemTime(Pasar_a_Time(texto),tiempo);
ProcessHandle = GetCurrentProcess();
OpenProcessToken(ProcessHandle, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &TokenHandle);
LookupPrivilegeValue(NULL, SE_SYSTEMTIME_NAME, &tmpLuid);
tkp.PrivilegeCount = 1;
tkp.Privileges->Luid = tmpLuid;
tkp.Privileges->Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(TokenHandle, false, &tkp,sizeof(tkpNew), &tkpNew, &dwBufferNeeded);
if(!SetLocalTime(&tiempo)){
Label5->Caption="No se puede poner la hora";
}
else{
Label5->Caption="Hora actualizada";
}
¿Se os ocurre algo?¿Qué me falta?
Saludos Manolo