-Suponiendo que declaramos las API "GetCursorPos", el tipo "POINTAPI", y que tenemos un label transparente que se ajusta a la captura de pantalla llamado "l" pues sería así (aunke pienso pero no estoy seguro que para que funcione bien el Form tiene que tener el "BorderStyle" en "None" pero no estoy seguro):
Código
Dim a As POINTAPI Dim x As Long Dim y as Long Dim resX as Long Dim resY as Long resX = 1600 ' Esta es la resolución de la victima (horizontal) resY = 1200 ' Esta es la resolución de la victima (vertical) GetCursorPos a x = ((a.x - ((Me.Left + l.Left) / 15)) / (((l.Width + Me.Left + l.Left) / 15) - (Me.Left + l.Left) / 15)) * resX y = ((a.y - ((Me.Top + l.Top) / 15)) / (((l.Heigth + Me.Top + l.Top) / 15) - (Me.Top + l.Top) / 15)) * resY
Pues bien, el problema viene a la hora de hacer click, para eso uso la API mouse_event, para hacer click supongo que será así:
Código
SetCursorPos x, y mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
y para doble click:
Código
SetCursorPos x, y mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
Esto suponiendo que pulsas el boton izquierdo...si no sería lo mismo pero con el de la derecha...
Entonces al server le pueden llegar cuatro casos:
1º- Click boton izquierdo
2º- Click boton derecho
3º- Doble click boton izquierdo
4º- Doble click boton derecho
Lo malo es como envío yo esos comandos al server, porque me encuentro con estes problemas:
-Si uso el evento click y doble click del label tengo dos problemas, primero que no se que boton (si fue el derecho o el izquierdo el que pulso) y segundo que al hacer doble click ademas de producirse el evento "DblClick" tambien se produce el evento "click".
-Si uso el evento "Mouse_down" soluciono el problema de que boton fue el que pulsó el label, pero me encuentro con el problema de como diferencio el doble click del click.
Muchos pensaran que no hace falta separar el evento doble click, ya que al hacer dos clicks produzco dos eventos "Mouse_down" que se enviaran al server y este hará dos veces click...pero lo malo de eso es que un paquete puede tardar más en llegar que otro y puede que lo que me haga el server sean dos clicks separados (que el ordenador no reconocera como dble click)...
Bueno, después de este royo todo me gustaría que me dieran posibles soluciones...seguro que más de uno tiene un troyano hecho en VB 6.0 que envia clicks si haces tu click en la captura de pantalla...
Weno, espero que me podais ayudar y saludos