LPT терминатор - программа дистанционного управления компьютером. ____________________________________ |
Смотрим код::
______________________________________________________________
Рассмотрим модуль Form1 (Unit1)
:{Опрашиваем датчики на входах порта}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if SpeedButton1.Tag = 0 then
//--если не отключено тогда:begin
CheckBox1.Checked := not Pin10;
//--если на 10 ножке логический 0 тогда галочкаCheckBox2.Checked := not Pin11;
//--аналогичноCheckBox3.Checked := not Pin12;
CheckBox4.Checked := not Pin13;
CheckBox5.Checked := not Pin15;
{проверяем наличие галочки на любом из чекбоксов}
if (CheckBox1.Checked = true) or
//-- or - значит "или"(CheckBox2.Checked = true) or
(CheckBox3.Checked = true) or
(CheckBox4.Checked = true) or
(CheckBox5.Checked = true) then
//--если ДА тогда:begin
Timer1.Enabled := false;
//-- выключаем таймер опросаForm1.Hide;
//--скрываем главную формуForm2.ShowModal;
//--показываем форму2 "ИГРА ОКОНЧЕНА !"end ;
end ;
end;
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
Timer1.Interval := SpinEdit1.Value *1000;
//--установка частоты опроса датчиковend ;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if SpeedButton1.Tag = 0 then
//--выключаемbegin
SpeedButton1.tag := 1;
CheckBox1.Enabled := false;
CheckBox2.Enabled := false;
CheckBox3.Enabled := false;
CheckBox4.Enabled := false;
CheckBox5.Enabled := false
end else
begin
SpeedButton1.tag := 0;
//--включаемCheckBox1.Enabled := true;
CheckBox2.Enabled := true;
CheckBox3.Enabled := true;
CheckBox4.Enabled := true;
CheckBox5.Enabled := true;
end ;
end ;
procedure TForm1.FormActivate(Sender: TObject);
begin
Application.HintColor := cllime;
end;
procedure TForm1.SpinEdit3Change(Sender: TObject);
begin
Form2.Label1.Caption := IntToStr(SpinEdit3.Value);
//--обратный отсчет до выполнения действияend;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
Timer2.Interval := SpinEdit2.Value * 60000;
//--сколько минут быть программе невидимойForm1.Sho
w; //--показатьсяTimer2.Enabled := false; //--отключить таймер
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
//--кнопка СКРЫТЬbegin
Form1.Hide; //--скрываем
Timer2.Enabled := true;
//--включаем таймер "показать через"end;
procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
Timer2.Interval := SpinEdit2.Value * 60000;
//--установка интервала в минутахend;
{Для показа Form2 (Unit2) нажмите Shift + F12}
Далее рассмотрим модуль Form2
(Unit2) :private
{ Private declarations - здесь находятся исполняемые команды
}//**************************************************************************
procedure NoDes;
procedure OFF;
procedure Reset;
procedure NoMaus;
procedure NoKeyb;
//**************************************************************************
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses LPTIO, Unit1;
//--подлючаем модули с помощью Alt + F11{$R *.DFM}
procedure TForm2.Timer1Timer(Sender: TObject);
begin
Label1.Caption := IntToStr(StrToInt(Label1.Caption)-1);
//--обратный отсчётif Label2.Font.Color = clred then
//--мигает устрашающая надпись "ИГРА ОКОНЧЕНА !"Label2.Font.Color := claqua else
Label2.Font.Color := clred;
if Label1.Caption = '0' then
//--закрываем когда истекает время ввода пароляbegin
close;
Timer1.Enabled := false;
//--таймер больше не нуженend;
end;
procedure TForm2.FormShow(Sender: TObject);
begin
Timer1.Enabled := true;
//--на показ формы (с черепом) включаем таймер отсчётаLabel1.Caption := IntToStr(Form1.SpinEdit3.Value);
//--устанавливаем время что осталось до срабатыванияend;
procedure TForm2.FormClose(Sender: TObj
ect; var Action: TCloseAction); //--все действия выполняем на закрытие формыbegin
if Form1.Edit1.Text = Edit1.Text then
//--если введённый пароль совпадаетbegin
Form1.Timer1.Enabled := true;
//--включаем таймер опросаForm1.Show;
//--показуем программу как обычноend else
//--зато если не совпадает тогда злобствуемbegin
{Здесь разместите выполняемые действия}
if Form1.CheckBox1.Checked = true then OFF;
//--выключаем компif Form1.CheckBox2.Checked = true then Reset;
//--перезагружаем компif Form1.CheckBox3.Checked = true then NoMaus;
//--отключаем мышуif Form1.CheckBox4.Checked = true then NoKeyb;
//--отключаем клавиатуруif Form1.CheckBox5.Checked = true then NoDes;
//--отключаем рабочий столend;
{Всё восстанавливается как было после перезагрузки, так что не бойтесь!}
end;
procedure TForm2.Image1Click(Sender: TObject);
begin
close;
//--принудительное закрытие формыend;
{Это команды из Windows9x Вы можете их не использовать, а вставить любые свои}
//**********************КОМАНДЫ*************************************************
procedure TForm2.NoDes;
var
Wnd:THandle;
begin
Wnd := FindWindow('Progman', nil );
// отключаем рабочий стол - работает и в ХРWnd := FindWindowEx(Wnd, HWND(0),'ShellDll_DefView', nil );
ShowWindow(Wnd, SW_HIde);
end;
procedure TForm2.OFF;
//--выключаем компьютерbegin
WinExec(PChar('rundll32 shell32,SHExitWindowsEx 1'), SW_Show);
end;
procedure TForm2.Reset;
//--Рестартbegin
WinExec(PChar('rundll32 shell32,SHExitWindowsEx 2'), SW_Show);
end;
procedure TForm2.NoMaus;
//--отключаем мышкуbegin
WinExec(PChar('rundll32 mouse,disable'), SW_Show);
end;
procedure TForm2.NoKeyb;
//--пугаем и предлагаем выборbegin
if MessageBox(Handle,PChar('Вы действительно хотите отключить клавиатуру ? '), PChar('Игра окончена !'),MB_ICONWARNING + MB_YESNO +MB_DEFBUTTON2) = mrYes
then
begin
WinExec(PChar('rundll32 keyboard,disable'), SW_Show);
end else
//--предоставляем шансbegin
Form1.Timer1.Enabled := true;
Form1.Show;
end ;
end;
//******************************************************************************
end;