![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый день!
потихоньку идет разработка аналога РАдмин, в рамках одного проекта в среде D2010 ИНДИ10 на текущий день есть код переноса отжатия кнопок мыши с клиента на сервер в компоненте ИМЕДЖ1, в котором отображается скрин экрана сервера, все работает КЛИЕНТ Код:
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button=mbLeft then begin IdTCPClient1.Host:=HOST.Text; IdTCPClient1.Port:=StrToInt(PortNumber.Text); IdTCPClient1.Connect; IdTCPClient1.IOHandler.WriteLn('mouse_left '); IdTCPClient1.Disconnect; end; if Button=mbRight then begin IdTCPClient1.Host:=HOST.Text; IdTCPClient1.Port:=StrToInt(PortNumber.Text); IdTCPClient1.Connect; IdTCPClient1.IOHandler.WriteLn('mouse_right '); IdTCPClient1.Disconnect; end; end; Код:
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext); var z: string; X,Y:integer; K:TPoint; if SameText(Copy(z, 1, 11), 'mouse_move ') then begin z := AContext.Connection.IOHandler.ReadLn; if SameText(Copy(z, 1, 8), 'mouse_x ') then X:=StrToInt(Copy(z,9,4)); z := AContext.Connection.IOHandler.ReadLn; if SameText(Copy(z, 1, 8), 'mouse_y ') then Y:=StrToInt(Copy(z,9,4)); SetCursorPos(X,Y); end; if SameText(Copy(z, 1, 11), 'mouse_left ') then begin GetCursorPos(K); mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN,K.X,K.Y,0,0); mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP,K.X,K.Y,0,0); end; if SameText(Copy(z, 1, 12), 'mouse_right ') then begin GetCursorPos(K); mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_RIGHTDOWN,K.X,K.Y,0,0); mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_RIGHTUP,K.X,K.Y,0,0); end; AContext.Connection.Disconnect; end; end; 1. можно ли реализовать функцию перетаскивания объектов, как приблизительно код может выглядеть? 2. можно ли реализовать прокрутку с использованием колесика мыши (мышь - два баттона и колесо, стандартная), в событиях компонента ИМЕДЖ1 нет обработки колеса 3. в принципе, нужно ли делать обработку событий типа клик, двойной клик и что там может быть еще связянное с мышью, чтобы приблизиться к функционалу MSRDP? |