Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Делаем подобие кнопки из пуска "Выключить комп..."

5.1K
26 ноября 2006 года
saturn61
108 / / 25.10.2006
Салют всем!
Кто-нить знает как вырубить,перезагрузить и сделать ждущий режим?

P.S. Охото прогу сделать, которая будет выполнять задание, а потом вырубаться или ............ну и т.д. и т.п.
1.9K
26 ноября 2006 года
Borland_prog
149 / / 25.01.2006
The ExitWindowsEx function either logs off, shuts down, or shuts down and restarts the system.

BOOL ExitWindowsEx(

UINT uFlags, // shutdown operation
DWORD dwReserved // reserved
);


Parameters

uFlags

Specifies the type of shutdown. This parameter must be some combination of the following values:

Value Meaning
EWX_FORCE Forces processes to terminate. When this flag is set, Windows does not send the messages WM_QUERYENDSESSION and WM_ENDSESSION to the applications currently running in the system. This can cause the applications to lose data. Therefore, you should only use this flag in an emergency.
EWX_LOGOFF Shuts down all processes running in the security context of the process that called the ExitWindowsEx function. Then it logs the user off.
EWX_POWEROFF Shuts down the system and turns off the power. The system must support the power-off feature.Windows NT: The calling process must have the SE_SHUTDOWN_NAME privilege. For more information, see the following Remarks section. Windows 95: Security privileges are not supported or required.
EWX_REBOOT Shuts down the system and then restarts the system. Windows NT: The calling process must have the SE_SHUTDOWN_NAME privilege. For more information, see the following Remarks section. Windows 95: Security privileges are not supported or required.
EWX_SHUTDOWN Shuts down the system to a point at which it is safe to turn off the power. All file buffers have been flushed to disk, and all running processes have stopped. Windows NT: The calling process must have the SE_SHUTDOWN_NAME privilege. For more information, see the following Remarks section. Windows 95: Security privileges are not supported or required.


dwReserved

Reserved; this parameter is ignored.



Return Values

If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks

The ExitWindowsEx function returns as soon as it has initiated the shutdown. The shutdown or logoff then proceeds asynchronously.
During a shutdown or log-off operation, applications that are shut down are allowed a specific amount of time to respond to the shutdown request. If the time expires, Windows displays a dialog box that allows the user to forcibly shut down the application, to retry the shutdown, or to cancel the shutdown request. If the EWX_FORCE value is specified, Windows always forces applications to close and does not display the dialog box.

The ExitWindowsEx function sends a separate notification message, CTRL_SHUTDOWN_EVENT or CTRL_LOGOFF_EVENT as the situation warrants, to console processes. A console process routes these messages to its HandlerRoutine functions, which are added and removed by calls to the SetConsoleCtrlHandler function. ExitWindowsEx sends these notification messages asynchronously; thus, an application cannot assume that the console notification messages have been handled when a call to ExitWindowsEx returns.

Windows NT: To shut down or restart the system, the calling process must use the AdjustTokenPrivileges function to enable the SE_SHUTDOWN_NAME privilege. For more information about security privileges, see Privileges.
Windows 95: Security privileges are not supported or required.
387
26 ноября 2006 года
Ihbif19
421 / / 28.10.2004
Цитата: saturn61
Салют всем!
Кто-нить знает как вырубить,перезагрузить и сделать ждущий режим?

P.S. Охото прогу сделать, которая будет выполнять задание, а потом вырубаться или ............ну и т.д. и т.п.


Выключение компьютера
[COLOR=darkred]ExitWindowsEx(EWX_POWEROFF or ewx_force,0);[/COLOR]
Перезагрузка
[COLOR=darkred]ExitWindowsEx(EWX_REBOOT or ewx_force,0);[/COLOR]
Ждущий режим
[COLOR=darkred]ExitWindowsEx(EWX_SHUTDOWN or ewx_force,0);[/COLOR]

344
26 ноября 2006 года
Delpher
493 / / 14.08.2005
Ihbif17, сам пробывал?


saturn61 рекомендую использовать компоненту TabfShutDown, в ней реализованы все необходимые тебе ф-ии
http://delphersoft.narod.ru/comp/system2.html
5.1K
26 ноября 2006 года
saturn61
108 / / 25.10.2006
Инфа полезная но из всех перечисленных способов работает ewx_force, который выкидывает в Выбор пользователя.

У вас это работает?

P.S. Я этот код в обработчик нажатия кнопки закинул, вот че-то не очень пашет.

Цитата: Delpher

рекомендую использовать компоненту TabfShutDown


а можешь написать сами функции, без компонента?
(влом качать набор компонентов, а ссылка полезнеькая :D)

344
26 ноября 2006 года
Delpher
493 / / 14.08.2005
а другим должно быть не влом искать решения вместо кого-то

ты поисковиком пользовался?

видимо нет, потому что вот ято я нашел меньше чем за минуту
Код:
procedure Shutdown2;
var
  hToken: THandle;
  tkp: _TOKEN_PRIVILEGES;
  DUMMY: PTokenPrivileges;
  DummyRL: Cardinal;
begin
  DUMMY := nil;
  if not OpenProcessToken(
    GetCurrentProcess(),
    TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
    hToken
    ) then
    raise TShutdownEx.Create('OpenProcessToken failed');
  if (not LookupPrivilegeValue(nil, 'SeShutdownPrivilege',
    tkp.Privileges[0].Luid)) then
    raise TShutdownEx.Create('LookupPrivilegeValue failed');
  tkp.PrivilegeCount := 1;
  tkp.Privileges[0].Attributes := $0002; [COLOR=#000080]//SE_PRIVILEGE_ENABLED = $00002[/COLOR]
  AdjustTokenPrivileges(hToken, FALSE, tkp, 0, Dummy, DummyRL);
  if (GetLastError() <> ERROR_SUCCESS) then
    raise TShutdownEx.Create('AdjustTokenPrivileges failed');
  if (not ExitWindowsEx(EWX_SHUTDOWN or EWX_FORCE, 0)) then
    raise TShutdownEx.Create('ExitWindowsEx failed');
end;
257
26 ноября 2006 года
kosfiz
1.6K / / 18.09.2005
вот глянь исходник, там и выключение и перезагрузка есть.
387
26 ноября 2006 года
Ihbif19
421 / / 28.10.2004
Цитата: Delpher
Ihbif17, сам пробывал?


saturn61 рекомендую использовать компоненту TabfShutDown, в ней реализованы все необходимые тебе ф-ии
http://delphersoft.narod.ru/comp/system2.html


Нет, не пробовал, не работает что-то?

5.1K
26 ноября 2006 года
saturn61
108 / / 25.10.2006
Delpher, извини за напряг.....и спасибо за напряг.
Осталось компонент достать.

kosfiz, конкретная прога.

Поггружаюсь в думы, теперь это всё разобрать и понять надо. :D
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог