|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Удалённое управление мыши через socket
Всех приветствую необходимо организовать удалённое управление курсором мыши по локальной сети с serversocket'а на clientsocket. Собственно проблема в том,что могу передавать перемещение мыши. На clientsocket'е:
Код:
x := ' '; y := ' '; str:= Socket.ReceiveText; for i:=1 to Length(str) do begin if str[i] <> '_' then x:= x + str[i]; if str[i] = '_' then Break; end; for j:= i+1 to Length(str) do y:= y+str[j]; SetCursorPos(StrToInt(x), StrToInt(y)); Код:
procedure TForm1.Timer1Timer(Sender: TObject); var Mous:Tpoint; begin GetCursorPos(Mous); ServerSocket1.Socket.Connections[0].SendText(IntToStr(Mous.X)+'_'+IntToStr(Mous.Y)); end; Пытался передавать и через OnClick,отсылая просто букву, но просто нет реакции. Код:
//на сервере procedure TForm1.FormClick(Sender: TObject); var Mous:Tpoint; begin GetCursorPos(Mous); ServerSocket1.Socket.Connections[0].SendText('l'+IntToStr(Mous.X)+'_'+IntToStr(Mous.Y)); end; Код:
if str[1]='l' then begin for i:=2 to Length(str) do begin if str[i] <> '_' then x:= x + str[i]; if str[i] = '_' then Break; end; for j:= i+1 to Length(str) do y:= y+str[j]; SetCursorPos(StrToInt(x), StrToInt(y)); mouse_event(MOUSEEVENTF_LEFTDOWN, StrToInt(x), StrToInt(y), 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, StrToInt(x), StrToInt(y), 0, 0); Код:
mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_RightDOWN, StrToInt(xx), StrToInt(yy), 0, 0); mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, StrToInt(xx), StrToInt(yy), 0, 0); Прошу помощи,возможно кто работал с этим и у него есть оптимизированный и рабочий алгоритм, ну и не забрасывайте тапками. |