Главная страница
    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.027 c
1-31212
zoolmox
2003-06-27 16:21
2003.07.10
OLE


1-31192
Lony
2003-06-27 11:44
2003.07.10
TreeView


3-31132
Frist_May
2003-06-17 18:02
2003.07.10
Oracle + Delphi


14-31500
_0$a_
2003-06-24 02:05
2003.07.10
Как зарядить карточку ?


14-31493
leonidus
2003-06-07 13:40
2003.07.10
Запуск моей программы из контекстного меню IE, как в ReGet`е





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский