Меню сайта
Мини-чат
Чтобы добавить сообщение, необходимо авторизоваться.
Главная » Статьи » Не стандартные примеры на Delphi » API

Постепенное умирание
The_Sprite пишет:

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

Совместимость: все версии Delphi

Пример:


    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,actPowerOFF,

actForceIfHung,actMonitorOFF,actMonitorON,actCDEject,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
Категория: API | Добавил: DelphiAiX (09.05.2012)
Просмотров: 403 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]