Для начала нужно настроить IdTCPClient: Host - IP-адрес сервера, Port - целое число, кроме нуля (на сервере порт должен быть таким же, например 1234). Все эти свойства, конечно же, можно установить и программно. Подключаем клиент к серверу таким кодом:
Код:
IdTCPClient1.Host:=LabeledEdit1.Text; // IP-сервера
IdTCPClient1.Connect; // подключение
Соответственно, отключение:
Пример отправки сообщений продемонстрирую на событии нажатия мыши на компоненте Image:
Код:
procedure TClientMainForm.Image1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
If (Button=mbLeft) Then
IdTCPClient1.WriteLn('left_down')
Else If (Button=mbRight) Then
IdTCPClient1.WriteLn('right_down')
Else If (Button=mbMiddle) Then
IdTCPClient1.WriteLn('middle_down');
end;
Теперь приложение-сервер. Устанавливаем на форму приложения-сервер IdTCPServer. Код на кнопку "Создать сервер":
Код:
IdTCPServer1.Bindings.Add; // добавляет подключение
IdTCPServer1.Bindings.Items[0].IP:=LabeledEdit1.Text; // IP-адрес клиента
IdTCPServer1.Bindings.Items[0].Port:=1234; // порт клиента
IdTCPServer1.Active:=True; // активизирует сервер
Код на кнопку "Отключить сервер":
Код:
IdTCPServer1.Active:=False;
IdTCPServer1.Bindings.Delete(0);
Код на выполнение сервера (на событие OnExecute компонента IdTCPServer)
Код:
procedure TMainServerForm.IdTCPServer1Execute(AThread: TIdPeerThread);
Var
Str: String; // строка
Poz: TPoint; // позиция мышки
begin
With AThread.Connection Do
Begin
Str:=ReadLn;
// --------------Нажатие кнопок мыши------------------
If (Str='left_down') Then // проверяю сообщение клиента
Begin
GetCursorPos(Poz);
Mouse_event(MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTDOWN,
Poz.X, Poz.Y, 0, 0); // событие
End;
If (Str='right_down') Then
Begin
GetCursorPos(Poz);
Mouse_event(MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_RIGHTDOWN,
Poz.X, Poz.Y, 0, 0);
End;
If (Str='middle_down') Then
Begin
GetCursorPos(Poz);
Mouse_event(MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_MIDDLEDOWN,
Poz.X, Poz.Y, 0, 0);
End;
End;
end;
Сервер будет нажимать на кнопки мыши на управляемом компьютере. Думаю этого кода достаточно для ответа. По аналогии можно написать код на многие другие действия.