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

Как завершить работу 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;

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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

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

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