Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: TheJucas21 en 6 Diciembre 2017, 13:02 pm



Título: Me confunde esta parte, como lo logro
Publicado por: TheJucas21 en 6 Diciembre 2017, 13:02 pm
Buenas, tengo una nueva duda me explico, yo tengo tengo codigos en un proyecto vb6 para mover mouse y detecetar el click, por ende al hacer click realiza una accion con el fin de automatizar una accion, en este caso uso el mouse click derecho, y tengo otro codigo que me lee las coordenas X Y de mi mouse, ahora que entienden estas 3 capacidad de lectura XY mouse, deteccion de click y mover y realizar accion en mi proyecyo les muestro mi codigo.

If GetAsyncKeyState(2) Then
If Mouse.X > "581" And Mouse.X < "667" And Mouse.Y > "354" And Mouse.Y < "382" Then
Sendkeys ("hola")
End If
End If

Si logran entender el codigo correctamente lo que hace es preguntar si el mouseclick derecho se clickea entre las dimenciones de un rectangular que yo fije con XY del mouse y si esta en esa parte escribe "hola".
Si esta todo entendido a este punto les cuento que quiero hacer que, pregunte si el mouseclick derecho se clickea entre esas dimenciones y si lo hace (que ahi lo hace) despues del proximo mouseclick derecho ahi esribe el "hola" por ende tengo que tocar el click derecho en esa sección rectangular y despues donde quiera y ahi escribe "hola"

Si no lograron entender lo que quiero decir escriban y repondo rapidamente.
Yo si lo logro sacar el code lo comento y cierro th.

Saludos


Título: Re: Me confunde esta parte, como lo logro
Publicado por: Eleкtro en 7 Diciembre 2017, 00:18 am
Para determinar si una posición (Point) del mouse está dentro de los límites de un rectángulo (RECT), no necesitas hacerlo como lo estás haciendo, puedes usar la función PtInRect. Cuando hayas evaluado que el botón derecho del mouse es presionado dentro de los límites de ese rectángulo, puedes usar la función WindowFromPoint pasándole como argumento la posición actual del mouse (si no conoces la posición exacta, puedes usar la función GetCursorPos ) para obtener un controlador (handle) a la ventana en la que se presionó el botón del mouse, y entonces puedes activar el foco de esa ventana con la función de VB AppActivate o la función de la API de Windows SetForegroundWindow, y por último ya podrías usar la función de VB SendKeys para enviar pulsaciones del teclado a la ventana activa con el input del teclado direccionado a ella.

No me importaría mostrarte un ejemplo, pero no programo en VB6 sino en VB.NET, así que te dejo solamente la documentación de las funciones de Windows:

  • PtInRect (http://msdn.microsoft.com/en-us/library/windows/desktop/dd162882%28v=vs.85%29.aspx)
  • WindowFromPoint (http://msdn.microsoft.com/en-us/library/windows/desktop/ms633558%28v=vs.85%29.aspx)
  • GetCursorPos (http://msdn.microsoft.com/en-us/library/windows/desktop/ms648390%28v=vs.85%29.aspx)
  • SetForegroundWindow (https://msdn.microsoft.com/en-us/library/windows/desktop/ms633539%28v=vs.85%29.aspx)
+
  • RECT structure (https://msdn.microsoft.com/en-us/library/windows/desktop/dd162897(v=vs.85).aspx)

Saludos!