Delphi. Учимся на примерах | страница 64
>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;
Для того чтобы облегчить пользователю жизнь, сделаем так, чтобы отправка сообщения осуществлялась также по нажатии клавиши
>procedure TForm1.ipKeyPress(Sender: TObject; var Key: Char);
>begin
> if key = #13 then //если нажата клавиша
> bomb; //отправка сообщения
>end;
Полный исходный код модуля
Полный код модуля программы отправки сообщений по локальной сети представлен в листинге 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 }