Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Как завершить работу Windows?


Рекомендуемые сообщения

Подскажите пожайлуста код программы для выключения компьютера. Только не общем виде, а на примере. Спасибо.

Ссылка на комментарий
Поделиться на другие сайты

Если система - ХР, то есть встроенная команда:

Использование: C:\WINDOWS\system32\shutdown.EXE [-i | -l | -s | -r | -a] [-f] [-m \\<компьютер>] [-t xx] [-c "комментарий"] [-d up:xx:yy]       Без аргументов          Вывод справки по использованию (как и -?)       -i                      Отображение интерфейса, д.быть первым параметром       -l                      Выход (не совместим с параметром -m)       -s                      Завершение работы компьютера       -r                      Перезагрузка компьютера       -a                      Прекращение завершения работы системы       -m \\<компьютер>        Удаленный компьютер, на котором выполняется                               действие       -t xx                   Таймаут завершения работы - xx сек.       -c "comment"            Комментарий (не более 127 знаков)       -f                      Принудительное завершение приложений без                               предварительного предупреждения       -d [u][p]:xx:yy         Код причины завершения работы                               u - пользовательский код                               p - код запланированного завершения                               xx - основной код причины (1 - 255)                               yy - дополнительный код причины (1 - 65535)

Пример : SHUTDOWN -s -m \\localhost -t 10

Ссылка на комментарий
Поделиться на другие сайты

BOOL MySystemShutdown()

{

HANDLE hToken;

TOKEN_PRIVILEGES tkp;

// Get a token for this process.

if (!OpenProcessToken(GetCurrentProcess(),

TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))

return( FALSE );

// Get the LUID for the shutdown privilege.

LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,

&tkp.Privileges[0].Luid);

tkp.PrivilegeCount = 1; // one privilege to set

tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

// Get the shutdown privilege for this process.

AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,

(PTOKEN_PRIVILEGES)NULL, 0);

if (GetLastError() != ERROR_SUCCESS)

return FALSE;

// Shut down the system and force all applications to close.

if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0))

return FALSE;

return TRUE;

}

Ссылка на комментарий
Поделиться на другие сайты

Emotion

Можно ещё так:

dim OpSysSet, objSet OpSysSet = GetObject("winmgmts:{impersonationLevel=impersonate," & _                        "(Shutdown)}//./root/cimv2").ExecQuery _                        ("SELECT * FROM Win32_OperatingSystem" &_                        " WHERE Primary=true")For Each obj In OpSysSet   obj.Win32Shutdown(8)Next

Сохрани это в файл с расширением VBS.

Ссылка на комментарий
Поделиться на другие сайты

А как это будет выглядеть в Delphi? Например при нажатии на Button1.

P.S. Мне нужно, чтобы при событии(on timer) компонента Timer произошло выключение компьютера.

Ссылка на комментарий
Поделиться на другие сайты

2 Emotion

//...

uses

  ..., ShellApi, ...;

//...

procedure ShutdownButtonClick(Sender: TObject);

begin

  ShellExecute(Handle, nil, 'C:\WINDOWS\system32\shutdown.EXE', '-s -f', nil, SW_HIDE);

end;

Изменено пользователем Сергей Плоткин
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...