Чтение онлайн

на главную

Жанры

Delphi. Учимся на примерах

Парижский Сергей Михайлович

Шрифт:

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

 //проверяем, не пустое ли текстовое сообщение

Поделиться:
Популярные книги

Возвышение Меркурия. Книга 7

Кронос Александр
7. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 7

Жена со скидкой, или Случайный брак

Ардова Алиса
Любовные романы:
любовно-фантастические романы
8.15
рейтинг книги
Жена со скидкой, или Случайный брак

Совок 2

Агарев Вадим
2. Совок
Фантастика:
альтернативная история
7.61
рейтинг книги
Совок 2

Прометей: каменный век

Рави Ивар
1. Прометей
Фантастика:
альтернативная история
6.82
рейтинг книги
Прометей: каменный век

Ты предал нашу семью

Рей Полина
2. Предатели
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ты предал нашу семью

Уязвимость

Рам Янка
Любовные романы:
современные любовные романы
7.44
рейтинг книги
Уязвимость

Венецианский купец

Распопов Дмитрий Викторович
1. Венецианский купец
Фантастика:
фэнтези
героическая фантастика
альтернативная история
7.31
рейтинг книги
Венецианский купец

Попаданка для Дракона, или Жена любой ценой

Герр Ольга
Любовные романы:
любовно-фантастические романы
7.17
рейтинг книги
Попаданка для Дракона, или Жена любой ценой

Любимая учительница

Зайцева Мария
1. совершенная любовь
Любовные романы:
современные любовные романы
эро литература
8.73
рейтинг книги
Любимая учительница

Воевода

Ланцов Михаил Алексеевич
5. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Воевода

Деспот

Шагаева Наталья
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Деспот

Мастер...

Чащин Валерий
1. Мастер
Фантастика:
героическая фантастика
попаданцы
аниме
6.50
рейтинг книги
Мастер...

Не кровный Брат

Безрукова Елена
Любовные романы:
эро литература
6.83
рейтинг книги
Не кровный Брат

Не грози Дубровскому! Том III

Панарин Антон
3. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том III