powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Удалённое управление мышью через socket
1 сообщений из 1, страница 1 из 1
Удалённое управление мышью через socket
    #40061820
APTEMKA0704
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всех приветствую необходимо организовать удалённое управление курсором мыши по локальной сети с serversocket'а на clientsocket. Собственно проблема в том,что могу передавать перемещение мыши. На clientsocket'е:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
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));


С serversocket'а отправляю с помощью таймера 190 мс:
Код: sql
1.
2.
3.
4.
5.
6.
procedure TForm1.Timer1Timer(Sender: TObject); 
var Mous:Tpoint; 
begin 
GetCursorPos(Mous); 
ServerSocket1.Socket.Connections[0].SendText(IntToStr(Mous.X)+'_'+IntToStr(Mous.Y)); 
end;


Однако никак не могу корректно передать клик мыши, потоки информации смешиваются и ругается в итоге на то,что присланное сообщение не является целым (видимо происходит при переводе strtoint).
Пытался передавать и через OnClick,отсылая просто букву, но просто нет реакции.
Код: sql
1.
2.
3.
4.
5.
6.
7.
//на сервере 
procedure TForm1.FormClick(Sender: TObject); 
 var Mous:Tpoint; 
 begin 
GetCursorPos(Mous); 
ServerSocket1.Socket.Connections[0].SendText('l'+IntToStr(Mous.X)+'_'+IntToStr(Mous.Y)); 
end;


На клиенте принимал:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
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);


Пытался "кликать" через
Код: sql
1.
2.
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); 


Пробовал через mousedown и mouseup разделять эти две команды,но ничего не получилось.
Прошу помощи,возможно кто работал с этим и у него есть оптимизированный и рабочий алгоритм, ну и не забрасывайте тапками.:(
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Удалённое управление мышью через socket
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]