Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Else begin




Timer1.Enabled := false;

Form1.Frame11.Label14.Caption := 'Копирование завершено.';

Form1.Frame11.Memo2.Lines.Add(‘Копирование завершено..');

Form1.Frame11.QProgressBar1.position := 100;

MessageBox(0, ‘Передача файлов завершена’, 'Трансфер', mb_IconInformation);

Form1.Frame11.Hide;

Form1.Frame21.Show;

end;

end;

 

Для того, чтобы выделить все файлы или снять выделения сразу со всех файлов в папке - предусмотрен компонент TPoupMenu на фрейме с ListView1 и отчётом.

 

 

На Сервере используются процедуры для передачи отчётов: Send и SendA:

Процедура SendАпередаёт клиенту одну строку:

 

procedure TMain.SendA(Strng : String);

Begin

Try

Client.Connect;

Client.WriteLn(Strng);

Client.Disconnect;

Except

end;

end;

Параметр Strngявляется строковой переменной, в которую записывается строка для передачи Клиенту.

Client.Connect; - устанавливается соединение с Клиентом, если оно есть, то передаём одну строку Client.WriteLn(Strng); и сразу же разрываем соединение. Если соединения нет, то возникает ошибка, но т.к. код защищён try except end;Сообщение на Сервере об ошибке не выдаётся.

 

Процедура Sendпередаёт клиенту всё содержимое поля memSend (TMemo):

 

procedure TMain.Send;

Var

i : integer;

Begin

Client.Connect;

Client.WriteLn('Run service');

for i := 0 to memSend.Lines.Count - 1 do

Client.WriteLn(MemSend.Lines[i]);

Client.Disconnect;

end;

Client.Connect; - устанавливается соединение с Сервером

Client.WriteLn('Run service'); - Клиенту передаётся команда очистки поля memRecive. Затем поочерёдно передаются строки из поля memSend. После того, как все строки переданы, разрываем соединение.

«Удалённый рабочий стол»

Функция «Удалённый рабочий стол» позволяет наблюдать экран удалённого компьютера, как отдельными фотографиями, так и в видеорежиме.

На фрейме с просмотром экрана есть следующие управляющие элементы:

 

Кнопка «Получить снимок», с помощью которой можно получить фотографию рабочего стола удалённого компьютера:

 

procedureTFrame7.Panel1Click(Sender: TObject);

Begin

Form1.Send('$F005');

end;

Клиент отсылает Серверу команду получения снимка. Затем Сервер приняв эту команду начинает работать с экраном:

 

if copy(n, 1,5) = '$F005'

Then begin

ScreenSave;

if FileExists('Screen.dat')

Then begin

List.Text := '$F005';

Send;

end;

end;

Процедура сохранения картинки рабочего стола в файле Screen.dat:

 

procedure ScreenSave;

Var

bmp: TBitmap;

DC: HDC;

Begin

bmp:=TBitmap.Create;

bmp.Height:=Screen.Height;

bmp.Width:=Screen.Width;

DC:=GetDC(0);

bitblt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DC, 0, 0, SRCCOPY);

Try

bmp.SaveToFile('Screen.dat');

Except

end;

ReleaseDC(0, DC);

end;

Получение дискриптора экрана-DC:=GetDC(0);

bitblt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DC, 0, 0, SRCCOPY); - копирование в bmp фотографии экрана и наконец сохранение bmp в файл Screen.dat. Для надёжности сохранение в файл защищено, т.к. при видео наблюдении или быстрого просмотра экрана, может быть ошибка доступа к файлу.

Если файл с фотографией экрана существует, то Клиенту отправляется отчёт об этом:

 

SendA(‘@F005');

После того, как клиенту пришёл отчёт о том, что фотография сохранена, начинается передача файла с фотографией по сети и дальнейшее его отображение в компоненте фрейма TImage:

 

procedure TForm1.ServerExecute(AThread: TIdPeerThread);

Var

n : string;

i : integer;

Begin

 

<…>

 

if copy(n, 1, 5) = '$F005'


Поделиться:

Дата добавления: 2015-08-05; просмотров: 52; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты