Форум: "Основная";
Текущий архив: 2002.09.12;
Скачать: [xml.tar.bz2];
ВнизКак в WinXP выключить компьютер Найти похожие ветки
← →
DenKop (2002-08-29 16:17) [0]Ни ExitWindows, ни ExitWindowsEx не работают. Вычитал в хелпе что нужно изменить уровень привелегий, но это не помогло.
← →
Квазиравномернонепрерывный (2002-08-29 16:43) [1]В debug API есть ф-я, которая показывает диаложек "Перезагрузить комп сейчас?..." и если user32 ответил Да, перегружает виндовоз.
← →
Беня Ладен (2002-09-02 01:04) [2]Start->Turn off Computer->Turn off !!! :)))
← →
melifaro (2002-09-02 01:28) [3]в XP как в NT - сначало надо дать приложению привилегию на выключение.
Пример:
Function GrantShutdownAccess: boolean;
А потом уже можно включать компьютер -
var
hToken: THandle;
lpVersionInformation: TOSVersionInfo;
tkp: TTokenPrivileges;
RetLen: DWORD;
PreviousState: TTokenPrivileges;
begin
lpVersionInformation.dwOSVersionInfoSize := SizeOf(lpVersionInformation);
Result := GetVersionEx(lpVersionInformation);
if (lpVersionInformation.dwPlatformId = VER_PLATFORM_WIN32_NT) then
begin
if not OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then
begin
Result := False;
exit;
end;
Result := LookupPrivilegeValue( Nil, "SeShutdownPrivilege",
tkp.Privileges[0].Luid);
if not Result 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
begin
Result := False;
Exit;
end;
end;
Result := True;
end;
if GrantShutdownAccess then ExitWindowsEx (EWX_FORCE and EWX_SHUTDOWN,0);
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.09.12;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c