Для начала нужно настроить IdTCPClient: Host - IP-адрес сервера, Port - целое число, кроме нуля (на сервере порт должен быть таким же, например 1234). Все эти свойства, конечно же, можно установить и программно. Подключаем клиент к серверу таким кодом:
Код:
1 2 | IdTCPClient1 . Host:=LabeledEdit1 . Text;
IdTCPClient1 . Connect;
|
Соответственно, отключение:
Пример отправки сообщений продемонстрирую на событии нажатия мыши на компоненте Image:
Код:
1 2 3 4 5 6 7 8 9 10 | 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. Код на кнопку "Создать сервер":
Код:
1 2 3 4 | IdTCPServer1 . Bindings . Add;
IdTCPServer1 . Bindings . Items[ 0 ].IP:=LabeledEdit1 . Text;
IdTCPServer1 . Bindings . Items[ 0 ].Port:= 1234 ;
IdTCPServer1 . Active:= True ;
|
Код на кнопку "Отключить сервер":
Код:
1 2 | IdTCPServer1 . Active:= False ;
IdTCPServer1 . Bindings . Delete( 0 );
|
Код на выполнение сервера (на событие OnExecute компонента IdTCPServer)
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 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 ;
|
Сервер будет нажимать на кнопки мыши на управляемом компьютере. Думаю этого кода достаточно для ответа. По аналогии можно написать код на многие другие действия.