Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Dahak en 21 Septiembre 2011, 17:06 pm



Título: Mover raton y pinchar dentro de otra aplicación
Publicado por: Dahak en 21 Septiembre 2011, 17:06 pm
Hola a todos, mi problema es el siguiente, he creado un programa para que cuando pulse una tecla determinada, mueva el raton y pulse en una zona determinada de otra aplicación, el problema es que no me funciona en el videojuego que quiero, y sin embargo, me funciona en otros juegos, aplicaciones de windows etc, vamos, en todos los sitios, menos en ese juego.

Este es el programa:


Código formulario:
Código
  1. Option Explicit
  2.  
  3. Const MOUSEEVENTF_ABSOLUTE = &H8000
  4. Const MOUSEEVENTF_LEFTDOWN = &H2
  5. Const MOUSEEVENTF_LEFTUP = &H4
  6. Const MOUSEEVENTF_MIDDLEDOWN = &H20
  7. Const MOUSEEVENTF_MIDDLEUP = &H40
  8. Const MOUSEEVENTF_MOVE = &H1
  9. Const MOUSEEVENTF_RIGHTDOWN = &H8
  10. Const MOUSEEVENTF_RIGHTUP = &H10
  11. Const MOUSEEVENTF_WHEEL = &H80
  12. Const MOUSEEVENTF_XDOWN = &H100
  13. Const MOUSEEVENTF_XUP = &H200
  14. Const WHEEL_DELTA = 120
  15. Const XBUTTON1 = &H1
  16. Const XBUTTON2 = &H2
  17.  
  18. Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
  19.  
  20. Const SWP_NOMOVE = 2
  21. Const SWP_NOSIZE = 1
  22. Const HWND_TOPMOST = -1
  23. Const HWND_NOTOPMOST = -2 '
  24.  
  25. Private Declare Function SetWindowPos _
  26. Lib "user32" ( _
  27. ByVal hWnd As Long, _
  28. ByVal hWndInsertAfter As Long, _
  29. ByVal x As Long, ByVal y As Long, _
  30. ByVal cX As Long, _
  31. ByVal cY As Long, _
  32. ByVal wFlags As Long) As Long
  33.  
  34. Private Sub Form_Load()
  35. Form1.Move 24200, 6000
  36. SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, _
  37. SWP_NOMOVE Or SWP_NOSIZE
  38. Timer1.Enabled = True
  39. End Sub
  40.  
  41. Private Sub Timer1_Timer()
  42. If GetAsyncKeyState(vbKeyNumpad0) Then
  43. SetCursorPos "388", "258"
  44. mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
  45. mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
  46. End If
  47. End Sub
  48.  

Código Módulo:
Código
  1. Public Declare Function SetCursorPos Lib "user32.dll" (ByVal x As Long, ByVal y As Long) As Long
  2.  
  3. Public Declare Sub mouse_event Lib "user32.dll" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy _
  4. As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
  5.  

¿Hay alguna manera de averiguar las propiedades de ese juego, mediante alguna API que llame al .exe, jugando con el hwnd o algo asi, para poder forzar el raton y que me deje moverlo?, es que la interfaz gráfica del juego es muy potente y no hay forma.

Si no es mucho pedir, necesitaria hacer las 2 cosas, pués sólo 1 de ellas no me serviria.

Espero que me podais ayudar.

Un saludo


Título: Re: Mover raton y pinchar dentro de otra aplicación
Publicado por: CAR3S? en 22 Septiembre 2011, 01:36 am
que juego? modo ventana?


Título: Re: Mover raton y pinchar dentro de otra aplicación
Publicado por: seba123neo en 22 Septiembre 2011, 03:45 am
si el juego es tipo DirectX a pantalla completa olvidate con eso no anda.


Título: Re: Mover raton y pinchar dentro de otra aplicación
Publicado por: BlackZeroX en 22 Septiembre 2011, 04:43 am
Ademas de lo que dijo Seba123Neo, si el motor principal esta basado en DirectX u OpenGL, tendras que INYECTAR en el proceso e intersectar el proceso que respecta a la manipulacion del mouse... tendras que usar Olly para tal cosa...
 solo para saber donde y como hacerlo.

Dulces Lunas!¡.


Título: Re: Mover raton y pinchar dentro de otra aplicación
Publicado por: Dahak en 23 Septiembre 2011, 17:59 pm
El nombre del juego no me acuerdo, porque era japones, y la "traducción" no me acuerdo, lo que es obvio es que es directx, porque mi tarjeta no soporta OpenGl y puedo jugar perfectamente.
Lo que no entiendo, es porque funciona en otros juegos que tambien usan Direct3d y con este no, no lo entiendo, tampoco entiendo lo que me ha dicho BlackZeroX, asi que si me puedes hacer el favor de explicarmelo, te lo agradeceria.

De todos modos, ¿estoy pensando?, ¿hay algún programa que pueda usar para analizar el juego y/o el .exe que os den datos para saber como actua el juego y asi saber decirme que debo hacer?.