How can I simulate additional mice in Windows?

I'm using the MultiPoint SDK to create a collaborative educational application for children in less affluent countries, where there is not one computer for each student in the classroom.

Because we need to support up to 40 mice connected to one computer, we need an automated way to test our software. The SDK will support as many mice that it can find on the system and detects when mice are added and removed. Each mouse appears as a 'virtual' mouse pointer within a WPF window. Each child has independent control of 'their' pointer on the screen.

We would like to create a test harness that tricks Windows into thinking that it has more than one mouse. The harness would need to create these fake devices (40+) and use them to send mouse messages like move, button down, etc

Any help would be greatly appreciated.

Answers


Faking mice to the extent that you'd need for MultiPoint is going to require a device driver. This is not an easy task, but is by no means impossible.

The best approach would probably be a HID minidriver that you can install using the Setup API. The driver would then accept DeviceIoControls which would cause it to simulate mouse input reports.


Need Your Help

Where can I find documentation for the Select/When/Otherwise statement?

sas datastep

I love using the Select/When/Otherwise statement in the data step, but my code always needs debugged before it will run properly. I never can remember the exact syntax required and SAS doesn't have...

logical fragments versus actual fragments

java android android-layout android-fragments swipe

I am writing an android app for a watch (ZGPAX S6). Very small screen, Android SDK 14 target. I intend to run this app without a title bar at the top, or tabs. This will be a full screen app - real

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.