Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.19;
Скачать: CL | DM;

Вниз

перезапуск компа   Найти похожие ветки 

 
lena19   (2003-12-08 23:50) [0]

всем привет народ подскажите как програмно перезапустить ком
пробовала
ExitWindows(EW_RESTARTWINDOWS, 0 )
но она не перегружает его а тока доходит до смены пользователя
у меня стоит win XP


 
Александр из Минска ©   (2003-12-08 23:54) [1]

А если так: ExitWindowsEx(EWX_REBOOT, 0); ???


 
Dimich1978 ©   (2003-12-09 08:21) [2]

Да Вы забыли про привелегии которые надо еще получить, а все что написано это для 98 подойдет, для 2000 и ХР нужны привелегии
procedure ReBoot(i:integer);
var
hToken: THandle;
tkp: TTokenPrivileges;
RetLen: DWORD;
PreviousState: TTokenPrivileges;
Ver: TOsVersionInfo;
begin
try
Ver.dwOSVersionInfoSize := SizeOf(Ver);
GetVersionEx(Ver);
if Ver.dwPlatformId=VER_PLATFORM_WIN32_NT then begin // если WinNT
if not OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then exit;
if not LookupPrivilegeValue( Nil, "SeShutdownPrivilege",tkp.Privileges[0].Luid) then exit;
PreviousState := tkp;
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
if not(AdjustTokenPrivileges(hToken, FALSE, tkp, SizeOf(PreviousState), PreviousState, RetLen)) then exit;
end;
application.Terminate;
if i=2 then ExitWindowsEx(EWX_REBOOT,0); // перезагрузить
if i=1 then ExitWindowsEx(EWX_POWEROFF,0);
except
end;
end;



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

Текущий архив: 2003.12.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
7-62302
truntaev
2003-10-10 21:52
2003.12.19
как дать привелегии на перегрузку или отключение?


1-62080
Марат
2003-12-09 09:13
2003.12.19
Очистка DBLookupComboBox


1-62106
Sanad
2003-12-08 15:36
2003.12.19
Одна память на двоих


7-62287
denkop
2003-10-14 17:43
2003.12.19
Запись в LPT base+2


14-62190
Kinder
2003-11-27 19:27
2003.12.19
Соединения ABC