Обучение Выключение ПК по таймеру[Delphi]

xQuad

Интересующийся
Подтвержденный
Регистрация
07.07.15
Сообщения
16
Реакции
3
Депозит
0
Покупок
0
Продаж
0
Создаем процедуру
private
procedure PowerOFF;
{ Private declarations }
public
{ Public declarations }
end;
Привилегии
procedure TForm1.PowerOFF;
var
TTokenHd: THandle;
TTokenPvg: TTokenPrivileges;
cbtpPrevious: DWORD;
rTTokenPvg: TTokenPrivileges;
pcbtpPreviousRequired: DWORD;
tpResult: Boolean;
const
SE_SHUTDOWN_NAME = 'SeShutdownPrivilege';
begin
//=========== Привилегии ==============//
begin
if Win32Platform = VER_PLATFORM_WIN32_NT then
begin
tpResult := OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
TTokenHd);
if tpResult then
begin
tpResult := LookupPrivilegeValue(nil,
SE_SHUTDOWN_NAME,
TTokenPvg.Privileges[0].Luid);
TTokenPvg.PrivilegeCount := 1;
TTokenPvg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
cbtpPrevious := SizeOf(rTTokenPvg);
pcbtpPreviousRequired := 0;
if tpResult then
Windows.AdjustTokenPrivileges(TTokenHd,
False,
TTokenPvg,
cbtpPrevious,
rTTokenPvg,
pcbtpPreviousRequired); // если выбивает ошибку,то в библиотеках Winapi.windows и оставляем только windows,зависит от версии delphi
end;
end;
ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF, 0); // ВЫключает наш компьютер.
end;
end;
Код на таймер
procedure TForm1.Timer1Timer(Sender: TObject);
var
a,b:string;
begin
slabel3.Caption:=TimeToStr(GetTime);
sLabel4.Caption:=TimeToStr(DateTimePicker1.Time-GetTime);

a:= TimeToStr(GetTime);
b:=TimeToStr(DateTimePicker1.Time);
if a=b then
PowerOFF;


end;
Включить таймер
Выключить таймер
 
Сверху Снизу