windows - håndter flere mus

Indlæg af Hanne Mølgaard Plasc

Problem



Vi bruger single PC (tynd klient) med Windows XP (Embedded) med Dual Monitor .


En af koreansk bank



  • Første overvågning : brugt af Bank
    Officer (mus og tastatur) Officer vil bruge browser, også nogle bank win32 apps

  • Anden skærm (touch screen - elotouch) : Brugt af besøgende, der sidder overfor Officer besøgende skulle røre
    feedback html knapper i browser
    (andet vindue) uden at afbryde
    operatørens mus flyttes .



Begge skærme har sin egen browser vindue åbnet (kan være barn vindue)

Vores mål er at opnå mus og touchscreen arbejde med to browservinduer uafhængigt.


Nu kan vi læse både mus og berøringsskærm ved hjælp af raw inputs (se links nedenfor) og kan bestemme hvilken enhed der genererer hændelser.
Vores idé er at opfange raw\_input hændelser fra berøringsskærmen i ActiveX komponenten og sende den til JS og annullere formeringsbegivenheder, så berøringsskærmsbegivenheder vil ikke forstyrre primærmusen.


Spørgsmål: Hvordan kan man annullere udbredelse (LEGACY) hændelser fra en bestemt HID (mus) enhed, eller hvis der er flere måder at få det til at fungere , kan nogle pege eller dele information om, hvordan man opnår dette (MSDN eller smth), da vi ikke har stor erfaring med at skrive drivere.

Bedste reference



  Sådan annulleres formering (LEGACY)
  hændelser fra bestemte HID (mus)
  apparat?



Musebeskeder er sendt til indgangstrådens meddelelseskø. Musebeskeder er i intervallet WM\_MOUSEFIRST til WM\_MOUSELAST. Den enkleste tilgang er at ændre din meddelelsespumpe, så den slukker meddelelser i dette interval.


Arranger at din meddelelsespumpe ser sådan ud:


while(GetMessage( &msg, hWnd, 0, 0 ))
{ 
    if ((msg.message<WM\_MOUSEFIRST) || (msg.message>WM\_MOUSELAST))
    {
        TranslateMessage(&msg); 
        DispatchMessage(&msg); 
    }
}

Andre referencer 1


Jeg spillede rundt med noget lignende for nogle år siden, så tilgiv mig for at være lidt vag, men jeg tror jeg havde en vis succes med at låse markøren til den primære skærm med ClipCursor, som er i bruger32 API ...


http://msdn.microsoft.com/en-us/library/ms648383(v=vs.85).aspx[7]


... så når en museventil kommer fra berøringsenheden, fordi den er uden for klipområdet, blev den ignoreret, men WM\_INPUT-begivenhederne er stadig fyret, så du kan fange dem og sende dine egne klik med museklik direkte til browseren, som ikke er ' Teknisk at flytte markøren, så det ikke påvirkes af klipningen.


Det har været et stykke tid siden jeg gjorde noget af dette, så vær venlig at tilgive mig, hvis det ikke virker. Jeg vil forsøge at grave mine gamle prototyper i morgen og se om jeg finder nogle perler.