Форум: "Основная";
Текущий архив: 2002.10.21;
Скачать: [xml.tar.bz2];
ВнизВыключение windows 2000 Найти похожие ветки
← →
atmospheric (2002-10-10 00:16) [0]Как выключить Windows NT/2000/XP ?
И как отключить Transporent у Glyph SpeedButton"а ?
← →
Beglec (2002-10-10 03:21) [1]Тема перемолота до немогу.
Посмотри фак, там подробно и про xp и про 2000 написано.
{------------------------------------------------ Выход из Windows без всяких запросов}
procedure ExitWindow(Flag: integer); {Для Win9x, WinNT, Win2000 и WinXP}
{eLogOFF - Делает LogOFF
eReboot - Перегружает Компьютер
eShutDown - Выключает Компьютер}
const SE_SHUTDOWN_NAME = "SeShutdownPrivilege";
var os : string;
begin
{Win XP - имеет в каталоге %Windows%System32% приложение shutdown.exe которое значително облегчает данную процедуру, но
функция OSwindows() не может определить что это именно WinXP поэтому приходится обходиться стандартными методами}
if OSwindows(os)=VER_PLATFORM_WIN32_NT then {Если система Windows NT}
begin
Case Flag of {Взависимости от того что нужно сделать то и делаем}
eLogOFF: ExitWindowsEx(eLogOFF,0); {Простой LogOFF}
// ShellExecute(Application.handle,"open","shutdown.exe","-l -t 0 -c "SD Install - LogOff"","",SW_HIDE); {LogOFF Computer Для XP}
eReboot: ShellExecute(Application.handle,"open","shutdown.exe","-r -t 0 -c "SD Install - Reboot Computer"","",SW_SHOWNORMAL); {Restart Computer Для XP всен очень просто}
// OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,hToken); {Установить нужные привилегии дяя перегрузки}
// LookupPrivilegeValue(nil,"SeShutdownPrivilege",tkp.Privileges[0].Luid);
// tkp.PrivilegeCount:=1;
// tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
// AdjustTokenPrivileges(hToken,False,tkp,SizeOf(TTokenPrivileges),tkpo,zero);
// ExitWindowsEx(EWX_REBOOT,0); {Вот теперь можно и перегружаться}
eShutDown: ShellExecute(HWND(nil),"open","shutdown.exe","-s -t 0 -c "SD Install - ShutDown Computer"","",SW_SHOWNORMAL); {ShutDown Computer Для XP ну бля тут то просто :(}
// OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,hToken); {Установить нужные привилегии}
// LookupPrivilegeValue(nil,"SeShutdownPrivilege",tkp.Privileges[0].Luid);
// tkp.PrivilegeCount:=1;
// tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
// AdjustTokenPrivileges(hToken,False,tkp,SizeOf(TTokenPrivileges),tkpo,zero);
// ExitWindowsEx(EWX_SHUTDOWN,0); {вот теперь можно и выключать машину}
else Exit;
end; {case}
end
else
ExitWindowsEx(Flag,0); {Если операционная система Win9x то просто выход по флагу }
end;
В следующий раз не поленись зайти на фак или просто форум почитать.
trans
сейчас точно не помню.
Завтра подскажу.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.21;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c