Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SetSystemTime


XenonXX ©   (2003-07-28 04:25:00) 

У меня вот тут шок: оная функция возвращает nonzero, но время не меняет! как это? и что делать? фрагмент программы:

........
DateTimeToSystemTime(zap(ListView1.Selected.Data^).d,x);
GetSystemTime(t);
SetSystemTime(x);
Application.Minimize;
Application.Title:="Runing "+ExtractFileName(zap(ListView1.Selected.Data^).s);
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb := Sizeof(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := sw_show;
CreateProcess(pchar(ss),nil,string,nil,attributes,nil,false, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,nil, nil, StartupInfo,ProcessInfo);

WaitforSingleObject(ProcessInfo.hProcess,INFINITE);
GetSystemTime(w);
t.wHour:=t.wHour+w.wHour-x.wHour;
t.wMinute:=t.wMinute+w.wMinute-x.wMinute;
t.wSecond:=t.wSecond+w.wSecond-x.wSecond;

if not SetSystemTime(t) then
begin
FormatMessage//сюда не заходит, но время не меняет!!(FORMAT_MESSAGE_FROM_SYSTEM,nil,GetLastError,0,pchar(ss),255,nil);
ShowMessage(ss);
end;
.......


XenonXX   (2003-07-28 09:27:00) [1]

2
Привилегии у меня есть

procedure TForm1.FormCreate(Sender: TObject);
......
if OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES,htoken)
then begin
LookupPrivilegeValue(nil,"SeSystemtimePrivilege",luid);
tkp.Privileges[0].Luid:=luid;
tkp.PrivilegeCount:=1;
tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(htoken,false,tkp,0,nil,returnlength);
end;
......


А оно то меняет, то нет, и я не могу понять с чем это связано :(


ZZ   (2003-07-28 08:32:00) [2]

Windows NT/2000 or later: The SetSystemTime function enables the SE_SYSTEMTIME_NAME privilege before changing the system time. This privilege is disabled by default. For more information about security privileges, see Privileges.

По поводу Enable privilegies - в FAQ или поиск (например по AdjustTokenPrivileges )


Наверх

Титульная страница Поиск, карта сайта Написать письмо