ΠΠΎΠ»ΡΡΠ΅Π½Π½Π°Ρ ΡΠΎΡΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΈΡ. 15.1.
Π ΠΈΡ. 15.1. Π€ΠΎΡΠΌΠ° Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ bomb, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ Π²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΠ±ΡΡΠ²ΠΈΡΠ΅ ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΊΠ°ΠΊ Π·Π°ΠΊΡΡΡΡΠΉ ΡΠ»Π΅Π½ ΠΊΠ»Π°ΡΡΠ° ΡΠΎΡΠΌΡ:
type
TForm1 = class(TForm)
β¦
private
{ Private declarations }
procedure bomb();
public
{ Public declarations }
end;
Π’Π°ΠΊΠΆΠ΅ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ i ΡΠΈΠΏΠ° integer:
var
Form1: TForm1;
i: integer;
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ bomb Π² ΡΠ°Π·Π΄Π΅Π»Π΅ implementation:
procedure TForm1.bomb();
begin
//ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, Π½Π΅ ΠΏΡΡΡΠΎΠ΅ Π»ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
if txt.Text = '' then txt.Text:= '!';
//Π΅ΡΠ»ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
if how.Text= '' then how.Text:= '1';
if ip.Text = '' then ip.Text:= '127.0.0.1'; {Π΅ΡΠ»ΠΈ ip-Π°Π΄ΡΠ΅Ρ Π½Π΅ ΡΠΊΠ°Π·Π°Π½, ΡΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ}
//ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
for i:=1 to StrToInt(how.Text) do
WinExec(PChar('net send ' + ip.Text + '"' + txt.Text + '"'), 0); //ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
end;
Π ΡΡΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°: Π²ΡΠ΅ Π»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠΎΠ»Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ. ΠΡΠ»ΠΈ Π½Π΅Ρ ΡΠ΅ΠΊΡΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π·Π½Π°ΠΊ "!"; Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ IP-Π°Π΄ΡΠ΅Ρ, ΡΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Ρ Π°Π΄ΡΠ΅ΡΠΎΠΌ 127.0.0.1; Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΡΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ net send, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
net send ip-Π°Π΄ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΡΠΎΠ±ΡΡΠΈΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΠ° OnTimer:
procedure TForm1.Timer1Timer(Sender: TObject);
var
h: HWND; //Ρ ΡΠ°Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΎΠΊΠ½Π°
begin
if not secure.Checked then //Π΅ΡΠ»ΠΈ ΡΠ»Π°ΠΆΠΎΠΊ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½
Timer1.Enabled:= False; //ΠΎΡΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³
if secure.Checked then //Π΅ΡΠ»ΠΈ ΡΠ»Π°ΠΆΠΎΠΊ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½
begin
//ΠΈΡΠ΅ΠΌ ΠΎΠΊΠ½Π° Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ
h:= FindWindow(nil, 'Π‘Π»ΡΠΆΠ±Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ '); //Π·Π°ΠΊΡΡΠ²Π°Π΅ΠΌ Π²ΡΠ΅ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠ΅ ΠΎΠΊΠ½Π°
if h <> 0 then PostMessage(h, WM_QUIT, 0, 0);
end;
end;
ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΡΠ»Π°ΠΆΠΎΠΊ ΠΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΡΠΈΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΡΠΎ ΠΌΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΎΠΊΠΎΠ½, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΊΠΎΡΠΎΡΡΡ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ β ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΈ Π·Π°ΠΊΡΡΠ²Π°Π΅ΠΌ Π²ΡΠ΅ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠ΅ ΠΎΠΊΠ½Π°. ΠΡΠ»ΠΈ ΡΠ»Π°ΠΆΠΎΠΊ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, ΡΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΎΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ Π΄Π²ΡΠΌΡ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ secure.OnClick:
procedure TForm1.secureClick(Sender: TObject);
begin
if secure.Checked then //Π΅ΡΠ»ΠΈ ΡΠ»Π°ΠΆΠΎΠΊ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½β¦
Timer1.Enabled:= True; //β¦Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³
end;
ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Send ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ bomb:
procedure TForm1.Button1Click(Sender: TObject);
begin
bomb;
end;
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΆΠΈΠ·Π½Ρ, ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ»Π°ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡΠΈ <Enter> Π² Π»ΡΠ±ΠΎΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ OnKeyPress Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ. ΠΠΎΠ΄ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π΄Π»Ρ ΠΏΠΎΠ»Ρ ip, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π½Π°ΡΠΈΡΡ ΠΏΠΎΠ»ΡΠΌ txt ΠΈ how:
procedure TForm1.ipKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then //Π΅ΡΠ»ΠΈ Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° <enter>
bomb; //ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
end;
ΠΠΎΠ»Π½ΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 15.1.
ΠΠΈΡΡΠΈΠ½Π³ 15.1. ΠΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈunit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type TForm1 = class(TForm)
Button1: TButton;
ip: TEdit;
Label1: TLabel;
Label2: TLabel;
txt: TEdit;
Label3: TLabel;
how: TEdit;
secure: TCheckBox;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure secureClick(Sender: TObject);
procedure ipKeyPress(Sender: TObject; var Key: Char);
procedure txtKeyPress(Sender: TObject; var Key: Char);
procedure howKeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure bomb();
public
{ Public declarations }
end;
var
Form1: TForm1;
i: integer;
implementation
{$R *.dfm}
procedure TForm1.bomb();
begin
//ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, Π½Π΅ ΠΏΡΡΡΠΎΠ΅ Π»ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
if txt.Text = '' then txt.Text:= '!';
//Π΅ΡΠ»ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
if how.Text= '' then how.Text:= '1';
if ip.Text = '' then ip.Text:= '127.0.0.1'; {Π΅ΡΠ»ΠΈ ip-Π°Π΄ΡΠ΅Ρ Π½Π΅ ΡΠΊΠ°Π·Π°Π½, ΡΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ}
//ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
for i:=1 to StrToInt(how.Text) do
WinExec(PChar('net send ' + ip.Text + '"' + txt.Text + '"'), 0); //ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
h: HWND; //Ρ ΡΠ°Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΎΠΊΠ½Π°
begin
if not secure.Checked then //Π΅ΡΠ»ΠΈ ΡΠ»Π°ΠΆΠΎΠΊ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½
Timer1.Enabled:= False; //ΠΎΡΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³
if secure.Checked then //Π΅ΡΠ»ΠΈ ΡΠ»Π°ΠΆΠΎΠΊ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½
begin
//ΠΈΡΠ΅ΠΌ ΠΎΠΊΠ½Π° Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ
h:= FindWindow(nil, 'Π‘Π»ΡΠΆΠ±Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ '); //Π·Π°ΠΊΡΡΠ²Π°Π΅ΠΌ Π²ΡΠ΅ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠ΅ ΠΎΠΊΠ½Π°
if h <> 0 then PostMessage(h, WM_QUIT, 0, 0);
end;
end;
procedure TForm1.secureClick(Sender: TObject);
begin
if secure.Checked then //Π΅ΡΠ»ΠΈ ΡΠ»Π°ΠΆΠΎΠΊ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½β¦
Timer1.Enabled:= True; //β¦Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³
end;
procedure TForm1.ipKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then //Π΅ΡΠ»ΠΈ Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° <enter>
bomb; //ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
bomb;
end;
end.
β ΠΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π° ΠΏΡΠΈΠ»Π°Π³Π°Π΅ΠΌΠΎΠΌ ΠΊ ΠΊΠ½ΠΈΠ³Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ΅ Chapter 15.
ΠΠ»Π°Π²Π° 16
Π£Π΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ ΠΌΡΡΠΈ
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅Ρ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Π²ΡΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΡΡΠΈ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ Π½Π° Π΄ΡΡΠ³ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅. ΠΠΎΠΌΠΏΡΡΡΠ΅ΡΡ ΠΌΠΎΠ³ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΠΊΠ°ΠΊ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ, ΡΠ°ΠΊ ΠΈ Π² Internet.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π²Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ: ΠΏΠ΅ΡΠ²Π°Ρ (Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π΅ "ΠΠ»ΠΈΠ΅Π½Ρ") Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΡ Π²ΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ (Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π΅ "Π‘Π΅ΡΠ²Π΅Ρ"), ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΡΠΈΡΠ»Π°Π½Π½ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ. ΠΠ°Π½Π½ΡΠΉ ΡΠΈΠΏ ΡΠ²ΡΠ·ΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ "ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅Ρ" ΠΈ Π΄Π»Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Delphi. Π£ "ΠΊΠ»ΠΈΠ΅Π½ΡΠ°" Π±ΡΠ΄Π΅Ρ ΡΠΎΡΠΌΠ° Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ, Π° "ΡΠ΅ΡΠ²Π΅Ρ" Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅Π·Π°ΠΌΠ΅ΡΠ½ΠΎ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π‘Π½Π°ΡΠ°Π»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΡΠΌΡ
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Delphi. ΠΡΠΈΡΠ²ΠΎΠΉΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Ρ Caption ΡΠΎΡΠΌΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Remote Mouse. Π Π°Π·ΠΌΠ΅ΡΡΠΈΡΠ΅ Π½Π° ΡΠΎΡΠΌΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Label ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Standard ΠΈ ΠΏΡΠΈΡΠ²ΠΎΠΉΡΠ΅ Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Ρ Caption Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Port. Π‘ΠΏΡΠ°Π²Π° ΠΎΡ ΡΡΠΎΠΉ ΠΌΠ΅ΡΠΊΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Edit ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Standard. ΠΠ°Π·ΠΎΠ²ΠΈΡΠ΅ Π΅Π³ΠΎ port (ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ name), Π° ΡΠ²ΠΎΠΉΡΡΠ²Ρ text ΠΏΡΠΈΡΠ²ΠΎΠΉΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 2801.
ΠΠΈΠΆΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΠ΅ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Label, ΠΏΡΠΈΡΠ²ΠΎΠΈΠ² Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Ρ Caption Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ IP. Π‘ΠΏΡΠ°Π²Π° ΠΎΡ Π½Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Edit Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ip ΠΈ ΡΠ΅ΠΊΡΡΠΎΠΌ 127.0.0.1.
Π ΡΠ°ΠΌΠΎΠΌ Π½ΠΈΠ·Ρ ΡΠΎΡΠΌΡ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΠ΅ Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Button ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Standard), ΠΏΡΠΈΡΠ²ΠΎΠΈΠ² ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Ρ Caption Π·Π½Π°ΡΠ΅Π½ΠΈΡ Connect ΠΈ Disconnect. Π’Π°ΠΊΠΆΠ΅ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Timer ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ System. Π ΡΠ²ΠΎΠΉΡΡΠ²Π°Ρ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Enabled Π½Π° False, Π° ΡΠ²ΠΎΠΉΡΡΠ²Π° Interval β Π½Π° 500 (ΡΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ ΡΠ΅ΠΊΡΠ½Π΄Ρ).
Π Π°Π·ΠΌΠ΅ΡΡΠΈΡΠ΅ Π½Π° ΡΠΎΡΠΌΠ΅ ΡΠ°ΠΌΡΠΉ Π²Π°ΠΆΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ β Client Socket ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Internet β ΠΈ ΠΏΡΠΈΡΠ²ΠΎΠΉΡΠ΅ Π΅ΠΌΡ ΠΈΠΌΡ Client (ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Name). ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π² ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
ΠΠΎΠ»ΡΡΠ΅Π½Π½Π°Ρ ΡΠΎΡΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΈΡ. 16.1.
Π ΠΈΡ. 16.1. Π€ΠΎΡΠΌΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°