1. Simulating a mouse right click
- Posted by Pete Lomax <petelomax at blueyonder.co.uk> Jul 15, 2003
- 455 views
Derek, I was just playing with the mouse routines. At the moment you have: global procedure clickPointerLeft() w32Proc(xmouse_event,{6,0,0,0,0}) end procedure and: global procedure dragPointerTo(sequence pos) w32Proc(xmouse_event,{#2,0,0,0,0}) w32Proc(xSetCursorPos,{pos[1],pos[2]}) w32Proc(xmouse_event,{#4,0,0,0,0}) end procedure I suggest adding the constants: MOUSEEVENTF_LEFTDOWN =3D #0002, MOUSEEVENTF_LEFTUP =3D #0004, MOUSEEVENTF_RIGHTDOWN =3D #0008, MOUSEEVENTF_RIGHTUP =3D #0010, MOUSEEVENTF_MIDDLEDOWN =3D #0020, MOUSEEVENTF_MIDDLEUP =3D #0040, (and possibly, but I'm not sure:) MOUSEEVENTF_MOVE =3D #0001, MOUSEEVENTF_WHEEL =3D #0800, MOUSEEVENTF_ABSOLUTE =3D #8000, and also adding a more general purpose routine: global procedure clickPointer(object dwFlags) if sequence(dwFlags) then dwFlags=3Dor_all(dwFlags) end if w32Proc(xmouse_event,{dwFlags,0,0,0,0}) end procedure One catch is the msdn page states mouse_event has been superceded by SendInput. What do you think? Pete
2. Re: Simulating a mouse right click
- Posted by Derek Parnell <ddparnell at bigpond.com> Jul 16, 2003
- 427 views
On Tue, 15 Jul 2003 20:56:05 +0100 (07/16/03 05:56:05) , Pete Lomax <petelomax at blueyonder.co.uk> wrote: > > > Derek, > I was just playing with the mouse routines. At the moment you have: > > global procedure clickPointerLeft() > w32Proc(xmouse_event,{6,0,0,0,0}) > end procedure > > and: > > global procedure dragPointerTo(sequence pos) > w32Proc(xmouse_event,{#2,0,0,0,0}) > w32Proc(xSetCursorPos,{pos[1],pos[2]}) > w32Proc(xmouse_event,{#4,0,0,0,0}) > end procedure > > I suggest adding the constants: > MOUSEEVENTF_LEFTDOWN = #0002, > MOUSEEVENTF_LEFTUP = #0004, > MOUSEEVENTF_RIGHTDOWN = #0008, > MOUSEEVENTF_RIGHTUP = #0010, > MOUSEEVENTF_MIDDLEDOWN = #0020, > MOUSEEVENTF_MIDDLEUP = #0040, > > (and possibly, but I'm not sure:) > MOUSEEVENTF_MOVE = #0001, > MOUSEEVENTF_WHEEL = #0800, > MOUSEEVENTF_ABSOLUTE = #8000, > > and also adding a more general purpose routine: > > global procedure clickPointer(object dwFlags) > if sequence(dwFlags) then dwFlags=or_all(dwFlags) end if > w32Proc(xmouse_event,{dwFlags,0,0,0,0}) > end procedure > > One catch is the msdn page states mouse_event has been superceded by > SendInput. > > What do you think? Seems like a useful and easy thing to do. Not in the next release though. Maybe the one after that. -- cheers, Derek Parnell