Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.07.10;
Скачать: [xml.tar.bz2];

Вниз

Установка системного времени   Найти похожие ветки 

 
_ALEXey_   (2003-04-22 08:11) [0]

Здравствуйте!

Проблема:
Необходимо программно устанавливать системное время. По Win9x - все просто SetSystemTime, а под WinNT необходимо установить привилегии - это я знаю. Но вот почему-то SeSystemtimePrivilege не работает!
Вопрос 1:
В чем загвоздка?


// увеличить время на 1 час
procedure TForm1.Button1Click(Sender: TObject);
var
CurTime: _SYSTEMTIME;
hToken: THandle;
NewState: TOKEN_PRIVILEGES;
D: DWord;
begin
D:= 0;
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken);
NewState.PrivilegeCount:= 1;
LookupPrivilegeValue(nil, "SeSystemtimePrivilege", NewState.Privileges[0].Luid);
NewState.Privileges[0].Attributes:= SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, NewState, D, nil, D);
CloseHandle(hToken);
DecodeDate(Now, CurTime.wYear, CurTime.wMonth, CurTime.wDay);
DecodeTime(Now, CurTime.wHour, CurTime.wMinute, CurTime.wSecond, CurTime.wMilliseconds);
CurTime.wHour:= CurTime.wHour + 1;
SetSystemTime(CurTime);
end;


Вопрос 2:
Согласно коду, время должно увеличиваться на 1 час. Я проверял (с правами админа) - оно увеличивается на 7 часов. Почему так?


 
Anatoly Podgoretsky   (2003-04-22 12:28) [1]

Ну наверно у тебя такое локальное время.


 
_ALEXey_   (2003-04-22 13:31) [2]


> Anatoly Podgoretsky ©

Какое уж есть!


 
_ALEXey_   (2003-04-24 18:41) [3]

С SetLocalTime такая же история. Ошибка 1314 - недостаточно прав. Какие еще привилегии нужны?


 
_ALEXey_   (2003-04-28 09:25) [4]

Отвечу сам себе на вопрос 2:
Надо было учесть временнУю зону.


 
Anatoly Podgoretsky   (2003-04-28 11:34) [5]

SetSystemTime как раз для того, что бы не учитывать временную зону - в UTC
Для других случаев SetLocalTime



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2003.07.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.007 c
7-31528
Kusma
2003-04-21 16:29
2003.07.10
автотарт


14-31417
Шоломицкий
2003-06-24 12:20
2003.07.10
Где достать?


14-31410
AlexRush
2003-06-25 18:41
2003.07.10
Delphi. Перспективы.


3-31138
OlegM
2003-06-18 13:58
2003.07.10
Как узнать существует ли таблица


14-31465
Феликс
2003-06-22 18:54
2003.07.10
Епископ-гей: скандал сотрясает церковь





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский