Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: m[a]rkus en Agosto 12, 2010, 09:13:12 pm
-
Hola, bueno la verdad estoy haciendo un programa y tengo un problema, yo necesito poner el foco del mouse en un lugar especifico y lo logro pero solo con mi resolucion, ya que cuando pongo una resolucion mas alta o mas baja simplemente no esta el mouse donde tiene que estar, tienes alguna idea de como puedo arreglar esto ? alguna funcion que modifique las coord dependiendo de la resolucion ?
Gracias
PD: El formulario siempre esta en el centro de la pantalla. Gracias
-
(Screen.Width / 15) corresponde al ancho de la pantalla
(Screen.Height / 15) corresponde al alto de la pantalla
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
Private Sub Command1_Click()
Dim Mouse As POINTAPI
Mouse.X = Screen.Width
Mouse.Y = Screen.Height
Call SetCursorPos(Mouse.X, Mouse.Y)
End Sub
-
Groso xKiz...!
-
Gracias bro xkiz pero no es exactamente lo que busco, veras necesito hacer clic en una ventana que siempre esta en el centro de la pantalla, pero que las coord del SetCursorPos siempre cambian debido a la resolución, entonces hay varias soluciones la mejor que se me ocurre es alguna API que me diga las coord de la ventana esa y una vez que tenga esas coord solo tendria que sumarle las coord de llegar a donde quiero. No se si se entienda ?
Gracias
-
Bueno con frmPrincipal.ScaleHeight & frmPrincipal.ScaleWidth obtengo unas coord pero que no son las correctas al menos en pixels para poder usarlas con "SetCursorPos" a ver si logro convertirlas
-
yo sinceramente lo haria con (Form.Left Form.Top, Form.scaleWidth ó Form.ScaleHeight).
creo que para usar scaleWidth o scaleHeight hay que dividirlo por 15 (Form.ScaleWidth / 15) o (Form.ScaleHeight / 15) pero si queres Api, aca tenes:
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Sub Command1_Click()
Dim Win As RECT
Call GetWindowRect(Me.hwnd, Win)
Debug.Print "api: GetWindowRect: " & Win.Left, Win.Top, Win.Right, Win.Bottom
End Sub
-
xbiz muchisimas gracias, era eso lo que buscaba, en serio te lo agradezco lo que pueda hacer por usted y por miguel aqui estoy el tiene mi msn, sin ningun problema. Este foro lo que mas me gusta es la ayuda incondicional que dan ante todo, bueno que pasen muy buen dia y repito lo que puedan necesitar diganmelo si esta en mis manos lo hare.