как написать такую программулину?

GoldeN15

есть два компа А и Б связанных по TCP/IP.
мышь подключена к компу А по USB
необходимо , чтобы если я рукой подвинул мышь вправо, то на комп Б пришла бы соответствующая команда сместить курсор мыши вправо и т.п..
в общем передача сигналов от мыши с компа А на комп Б
(так как нету возможности подключить мышь к компу Б в общем просто напросто)

yroslavasako

необходимо , чтобы если я рукой подвинул мышь вправо, то на комп Б пришла бы соответствующая команда сместить курсор мыши вправо и т.п..
в общем передача сигналов от мыши с компа А на комп Б
с вики:
Synergy is a software application for sharing a keyboard and mouse between multiple computers
Эта задача весьма актуальна и уже давно была решена.

kill-still

на какой стадии написания программы ты остановился? где у тебя возникли проблемы? :grin: :lol: (ты видимо полагаешь что тут за тебя всё сделают?)
какие оси на компах? на каком языке планируешь писать?

GoldeN15

о, рад за вопросы по существу.
знаю delphi и пхп.
под винду
полагаю что тут можно обойтись одной дельфёй, но не знаю в какую сторону копать

yroslavasako

не, ну если так сильно хочется написать самому, то берёшь от вышеуказанной свободной проги сырца и смотришь как и почему оно работает там

GoldeN15

то берёшь от вышеуказанной свободной проги сырца и смотришь как и почему оно работает там
не думаю что надо тратить дни на копание в чужом коде
мне видиться вариант вроще, но не уверен что работать будет
делаем прогу, которая в зависимотсти от настроек либо клиент либо сервер.
клиент коннектится к серверу с помощью любого компонента дельфи, пусть будет даже idHTTPServer/Client от Indy
либо клиент либо сервер ловит сигналы мыши, вторая сторона двигает мышь
в принципе вопрос чем лучше ловить движения мыши и чем их воспроизводить
тут наверное системные прогеры под винду могут дать однозначный ответ

kill-still

ну кидаешь в клиентскую часть тспсокет, в сервер тспсервер. потом в своём формате пересылаешь отловленные виндовые сообщения и возбуждаешь их на клиенте. только хэндл перегенерить надо будет через WindowFromPoint/GetForegroundWindow.

marat7256

Поставь VNC.

kill-still

прочитай
http://msdn.microsoft.com/en-us/library/aa912027.aspx
хинт: переопредели WndProc.

GoldeN15

потом в своём формате пересылаешь отловленные виндовые сообщения
тэкс.
то есть от мыши идут мессаги вида "подвинул мыш влево на 100 DPI", "подвинул мышь вправо на 200DPI" >?

kill-still

есть ещё такие девайсы как омнибокс. в него втыкаются провода от 4ёх системников и от одного комплекта мышь + клавиатура + монитор. кнопкой переключаешься между наборами.

kill-still

я те сказал прочитай бля. вопросы возникнут - тогда пиши.
з.ы.

TWMMouse = packed record
Msg: Cardinal;
Keys: Longint;
case Integer of
0: (
XPos: Smallint;
YPos: Smallint);
1: (
Pos: TSmallPoint;
Result: Longint);
end;

TWMMouseMove = TWMMouse;

GoldeN15

вот смотри, ты привел код. в нем есть XPOS YPOS - это координаты мыши. но мне то нужно ее смещение влево вправо на столе под моей рукой. а не координаты указателя мыши на экране.
или я что то не так понимаю?

GoldeN15

а это событие - это вроде MouseMOve но сработает ли оно если я двигаю мышь но указатель не двигается на экране?
Posted to a window when the cursor moves. If the mouse is not captured, the message is posted to the window that contains the cursor. Otherwise, the message is posted to the window that has captured the mouse.

GoldeN15

Хотя у меня возникла мысль, возвращать указатель в обработчике события в центр экрана. тогда сдвиг мыши всегда будет порождать сдвиг указателя. правда это больше смахивает на костыль, и видимо надо лезть куда то на уровень драйверов. но да пофиг)
вопрос только в том как это всё будет вязаться с тем что винда на компе А будет находиться в состоянии WELCOME SCREEN

Alena_08_11

не надо кушать кактус, заюзай rdp/vnc

yroslavasako

не надо кушать кактус, заюзай rdp/vnc
научи мнея гамать в игры с 3d ускорением через rpd/vnc

Dasar

у тебя два компа рядом, при этом у первого компа нет портов usb и com, а у второго - есть.
и ты хочешь, воткнув мышь во второй комп, работать с ней на первом компе?

Alena_08_11

в свете
(так как нету возможности подключить мышь к компу Б в общем просто напросто)"
я сомневаюсь что ТС хочет играть на компьютере Б в 3д ускоренные игры. Я сомневаюсь что на компе Б в принципе можно играть в 3д ускоренные игры.

kill-still

тебе показать как можно спалить усб контроллер на маме? :)

bleyman

1) все советы про мессаги — далбайопские. По крайней мере на целевом компе следует использовать SendInput http://msdn.microsoft.com/en-us/library/ms646310%28v=VS.85%2... , чтобы создавать эвенты ваще, а не для данного окна.
2) Программировать подобные низкоуровневые штуки на чём-нибудь кроме C++ - далбайопство (можно на С, но это тоже далбайопство потому что С++ лучше). Потому что тебе хочется общаться с вендой на языке, на котором она сама написана, а не через хз кем сделанные обёртки. Хотя как знаешь, конечно.
3) "вопрос только в том как это всё будет вязаться с тем что винда на компе А будет находиться в состоянии WELCOME SCREEN" - никак. Кстати если на нём XP, то не нужно выпендриваться со сторонними программами и следует просто настроить родной remote desktop.

salamander

В этом случае можно просто пробросить USB по сети с одного компа на другой (пример: USB/IP ) и не морочить голову с передачей движений мышки.
Впрочем, мы так пока и не знаем, в чем же реальная задача ТС.

GoldeN15

реальная задача проще некуда - есть ноут, и к нему идет только один провод - питание. иногда и его не идет, если юзаю от батареи.
задаче, не добавляя проводов подключить к нему мышку ;)
мыша беспроводна по USB
её приёмник будет воткнут в другой комп который всегда включёен (это сервак ) и стоит на шкафу. с него сигнал о движениях мыши должен попадать на ноут.
на ноуте нету bluetoth если что ;)
было бы идеально если еще можно было бы переключать на серваке, каким из компов будет управлять мыша - серваком или ноутом.

salamander

Ну тогда тебе вполне должно подходить решение из моего предыдущего поста с проброской USB по сети (с сервера на ноут; в результате проброшенные USB устройства, подключенные к серверу, будут появляться на ноуте, как-будто они воткнуты прямо в него).

Alena_08_11

Хмм. А нахуя ?

GoldeN15

так мне с ноутом удобнее работать и перемещать его по хате из одной комнаты в другую или на кухню

GoldeN15

Ну тогда тебе вполне должно подходить решение из моего предыдущего поста с проброской USB по сети (с сервера на ноут; в результате проброшенные USB устройства, подключенные к серверу, будут появляться на ноуте, как-будто они воткнуты пря
спс, попробую разобраться

Dasar

задаче, не добавляя проводов подключить к нему мышку
usb-то на ноуте есть?
взять беспроводную мышь с мини-передатчиком, например, logitech c Unifying-передатчиком (от 400руб)
http://market.yandex.ru/model.xml?modelid=7008057&hid=72...

GoldeN15

usb-то на ноуте есть? взять беспроводную мышь с мини-передатчиком, например, logitech c Unifying-передатчиком (от 400руб)http://market.yandex.ru/model.xml?modelid=7008057&hid=72...
хм, даже не думал что они бывают столь маленькие. у моей мыши довольно большой и сильно торчит из корпуса, не смотря на то , что она беспроводная.

Fragaria

Спасибо за Synergy, поставил у себя дома (у меня беспроводная мыш и клава, подключенные к одному Unifying).
Учитывая, что компов несколько, стало офигенно удобно переходить от одного из них к другому. Просто приносишь с собой мышку с клавой, садишься и работаешь. А еще офигенно удобно - что можно копипастить текст с одного компа на другой.
Единственный косяк (ну как бы это конечно не косяк проги) - через WiFi плохо работает, слишком большая латентность.

apl13

знаю delphi и пхп.
Я думаю, тебе стоит выбросить свой компьютер и заняться чем-нибудь хорошим!
Оставить комментарий
Имя или ник:
Комментарий: