Avatar billede nixie Nybegynder
22. marts 2005 - 15:14 Der er 3 kommentarer

Intercept af mus under Windows

Hej,
Jeg har en ActiveX komponent (Netop) i min applikation. Denne komponent flytter muse-cursoren rundt på skærmen. Der er ingen properties i komponenten, der gør det muligt at få den til at lade være med at flytte musecursoren.

Jeg ville derfor høre om der er nogen der kender en metode hvorved man kan intercepte de kald som ActiveX komponenten laver til Windows når den beder om at flytte musen et bestemt sted hen? Kan man evt. hooke sig på et event eller lignende?

På forhånd tak. MVH Nikolaj
Avatar billede bertelbrander Novice
22. marts 2005 - 19:57 #1
Det kan man måske godt.

Men er det nogen god idé at bruge en komponent der umotiveret flytter rundt på muse cursoren?

Der er et eksempel på et program til at lave en hook her (C++):
http://home20.inet.tele.dk/midgaard/snip/rmkey.html

Det skal ændres så det bruger WH_MOUSE_LL, i dennes MSLLHOOKSTRUCT er der et bit der fortæller om eventen er indsat eller stammer fra musen. Hvis du er heldig kan du bruge dette til at checke om musen er flyttet eller om det er programmet der flytter musen.

Mere info:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/hooks/hookreference/hookfunctions/setwindowshookex.asp
Avatar billede nixie Nybegynder
23. marts 2005 - 10:54 #2
Tak for svaret - det så ellers lovende ud, men det ser desværre ikke ud til helt at virke. Problemet ser ud til at være, at den ikke blokerer kald til SetMousePosition - kun til mouse_event ... så jeg kan godt blokere brugerens musse-bevægelser men ikke activex komponenten.

MVH Nikolaj
Avatar billede bertelbrander Novice
23. marts 2005 - 19:52 #3
Ifølge MSDN kan wParam være WM_MOUSEMOVE, men hvis det ikke virker hjælper det jo ikke.

Jeg har ikke andre forslag, måske bortset fra at finde en komponent der ikke flytter på musen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester