Setting the mouse position

G

Gues

Hi,

How can I set the mouse position? So change the mouse to a specified
(x,y) on the screen?

Also,

How can I get the location of a window on the screen of which I know the
title?

Thanks.
 
R

Ryan Leavengood

I assume you are asking about Microsoft Windows. This is a very
specific question which is more related to Windows programming and the
Windows API than Ruby programming. But nonetheless:

1. To set the mouse position you need the SetCursorPos function, which
you can access from Ruby like so:

require 'Win32API'

setCursorPos =3D Win32API.new("user32", "SetCursorPos", ['I','I'], 'V')
setCursorPos.Call(100,100)

2. To get the location of a Window whose title you know, do the following:

require 'Win32API'

findWindow =3D Win32API.new("user32", "FindWindow", ['P','P'], 'L')
getClientRect =3D Win32API.new("user32", "GetClientRect", ['P','P'], 'V')
hwnd =3D findWindow.Call(nil, 'name of window here')
lpRect =3D " " * 16 # Four LONGs
getClientRect.Call(hwnd, lpRect)
left, top, right, bottom =3D lpRect.unpack('LLLL')
puts "Left: #{left}, Top: #{top}, Right: #{right}, Bottom: #{bottom}"

Ryan
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,535
Members
45,008
Latest member
obedient dusk

Latest Threads

Top