Большой Воронежский Форум
» Программирование>Delphi
Владимир Сергеевич 21:59 29.01.2007
Как программно : включить\выключить\перезагрузить\отправить в спящий режим\ждущий режимкомпьютер в заданное время? [Ответ]
X0R 02:34 30.01.2007
Запускай shutdown.exe с нужными параметрами.
Использование: shutdown [-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) [Ответ]
Yandex 09:59 30.01.2007
Статья с chm-файла с www.drkb.ru (рекомендую скачать - решает очень много вопросов).

Сообщение от :
Вопрос: А как реализовать в одном компоненте такие функции как выключение компьютера, перезагрузка, завершение сеанса работы пользователя, Eject CD, выключение питания монитора и т.д.? Ответ: предлагаем посмотреть следующий пример ...

procedure TForm1.Button1Click(Sender: TObject);
begin
PowerControl1.Action:=actCDEject;// Или... actLogOFF, actShutDown...
PowerControl1.Execute;
end;

=========================

Component Code:

unit PowerControl;

interface

uses WinTypes, WinProcs, Messages, SysUtils, Classes, Controls,
Forms, Graphics, MMSystem;

type
TAction = (actLogOFF,actShutDown,actReBoot,actForce,actPower OFF,
actForceIfHung,actMonitorOFF,actMonitorON,actCDEje ct,actCDUnEject);

type
TPowerControl = class(TComponent)
private
FAction : TAction;
procedure SetAction(Value : TAction);
protected
public
function Execute : Boolean;
published
property Action : TAction read FAction write SetAction;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('K2', [TPowerControl]);
end;

procedure TPowerControl.SetAction(Value : TAction);
begin
FAction := Value;
end;

function TPowerControl.Execute : Boolean;
begin
with (Owner as TForm) do
case FAction of
actLogOff: ExitWindowsEx(EWX_LOGOFF,1);
actShutDown: ExitWindowsEx(EWX_SHUTDOWN,1);
actReBoot: ExitWindowsEx(EWX_REBOOT,1);
actForce: ExitWindowsEx(EWX_FORCE,1);
actPowerOff: ExitWindowsEx(EWX_POWEROFF,1);
actForceIfHung: ExitWindowsEx(EWX_FORCEIFHUNG,1);
actMonitorOFF: SendMessage(Application.Handle,
WM_SYSCOMMAND, SC_MONITORPOWER, 0);
actMonitorON: SendMessage(Application.Handle, WM_SYSCOMMAND,
SC_MONITORPOWER, -1);
actCDEject: mciSendstring('SET CDAUDIO DOOR OPEN
WAIT',nil,0, Handle);
actCDUnEject: mciSendstring('SET CDAUDIO DOOR CLOSED
WAIT',nil,0, Handle);
end; {Case}
Result := True;
end;

end.

[Ответ]
Владимир Сергеевич 13:24 30.01.2007
Спасибо! [Ответ]
Вверх