Виртуальные мыши в C # - PullRequest
0 голосов
/ 04 мая 2010

Можем ли мы что-нибудь сделать для реализации VIRTUAL MICE? Я имею в виду, что я хочу иметь несколько мышей во всей ОС, но все они должны быть виртуальными (я не говорю о приложениях, которые обслуживают драйвер нескольких мышей для мышей PS / 2 или USB или Microsoft MultiPoint Mouse SDK.)

Это похоже на создание двух объектов:

Мышь mouse1, mouse2;

и используя их как:

mouse1.mouse_event (...); mouse2.mouse_event (...);

наличие КУРСОРА на экране НЕ ВАЖНО. Мне нужно только действие (MOUSE DOWN, MOVE, UP для каждого, но разделены)

и важно то, что эти ВИРТУАЛЬНЫЕ МЫШИ должны работать вместе, одновременно нажимая или перемещая вниз действие с различными координатами (x, y).

Ответы [ 3 ]

0 голосов
/ 04 мая 2010

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

Я предполагаю, что это может привести к двум важным ограничениям в дизайне ОС Windows:

1) Он знает только одну логическую мышь и одну логическую клавиатуру. Подключив несколько устройств, просто объедините усилия для перемещения одной и той же логической мыши и введите одно и то же текстовое поле.

2) Драйверы HID должны понимать несколько «пользователей», отображая несколько логических указателей мыши и одинаковое количество оконных фокусов.

Я думаю, что это, вероятно, можно преодолеть на уровне драйвера с помощью уровня совместимости. Приложениям и их элементам управления, вероятно, не нужно заботиться о том, сколько мышей, клавиатур или «пользователей» подключено к ОС. Он просто получает оконные сообщения, которые указывают, когда он получает фокус, когда мышь движется, клавиши нажимаются и т. Д.

Только мои 0,02 доллара.

0 голосов
/ 06 октября 2011

windows ddk (комплект разработки драйверов) позволяет вам создавать указанное количество виртуальных мышиных устройств и отправлять входные данные, используя dsf (каркас моделирования драйверов). У меня была очень похожая цель, за исключением глобальных целей, потому что я хочу повлиять на мышиного мышца, который я не могу использовать только для Windows apis. посмотрите на generichid vbscript и отредактируйте его, а также посмотрите на его комментарии и его довольно просто понять большую часть кода.

Я создал ответ на ваш вопрос, потому что мне нужно было эмулировать устройство kinect для нескольких людей, которое индивидуально распознается как мышь для моего проекта kinectmultipoint: http://kinectmultipoint.codeplex.com. Всем, кто хочет перейти на vb.net, пожалуйста, помогите, так как я могу использовать vbscript, но он нестабилен.

0 голосов
/ 04 мая 2010

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

Эта ссылка показывает, как это сделать:

http://msdn.microsoft.com/en-us/library/ms171548.aspx

Если вы встроите эту функциональность в свой собственный класс Mouse, это может быть похоже на то, чего вы хотите достичь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...