elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  mouse (x, y) de un picture, ayuda porfas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: mouse (x, y) de un picture, ayuda porfas  (Leído 4,557 veces)
elmatador2

Desconectado Desconectado

Mensajes: 29


Ver Perfil
mouse (x, y) de un picture, ayuda porfas
« en: 6 Julio 2016, 07:52 am »

hola gente, tengo este codigo que va pixel por pixel en la pantalla viendo el color y en un color determinado hace click, modifique el codigo para q no sea moviendo el mouse buscando el color, que lo busque de forma automatica... ahora necesito que al encontrar el color valla a esa posicion, pero se me va a la posicion de la pantalla entera, pero si modifico la parte del codigo resaltado no funciona de la forma q necesito... tiene q ver las aplicaciones que estan sobre ese picture tambien para tomar sus colores... este es el codigo...
Código
  1. Private Sub Timer1_Timer()
  2. Dim tPOS As POINTAPI
  3. Dim sTmp As String
  4. Dim lColor As Long
  5. Dim lDC As Long
  6.  
  7. For tPOS.y = Picture1.ScaleHeight = 0 To Picture1.ScaleHeight - 1
  8.  
  9. For tPOS.x = Picture1.ScaleWidth = 0 To Picture1.ScaleWidth - 1
  10.  
  11. lDC = GetWindowDC(0)
  12.  
  13.  
  14.  
  15. Call GetPixel(HDC, tPOS.x, tPOS.y)       ' este                <---------------------
  16.  
  17.  
  18.  
  19.  
  20. lColor = GetPixel(Picture1.HDC, tPOS.x, tPOS.y)
  21.  
  22. sTmp = Right$("000000" & Hex(lColor), 6)
  23. Me.Caption = "  R:" & Right$(sTmp, 2) & " G:" & Mid$(sTmp, 3, 2) & " B:" & Left$(sTmp, 2)
  24. Label1.Caption = "" & tPOS.x & " - " & tPOS.y & ""
  25. If Right$(sTmp, 2) = "FF" And Mid$(sTmp, 3, 2) = "FF" And Left$(sTmp, 2) = "FF" Then
  26.    Click tPOS
  27.  Espera (5)
  28. End If
  29.  
  30. If tPOS.x = 320 Then Stop
  31. If tPOS.y = 6 Then Stop
  32.  
  33.  
  34. Espera (0.011)
  35. Next tPOS.x
  36. Espera (0.011)
  37. Next tPOS.y
  38.  
  39.  
  40. End Sub


y esta es la parte del mouse

Código
  1. Private Sub Click(p As POINTAPI)
  2. 'p.X and p.Y in absolute coordinates
  3. 'Put the mouse on the point
  4. SetCursorPos p.x, p.y 'esta parte me lleva a (x, Y) pero de la pantalla completa y necesito q tome las coordenadas dentro del picture 1
  5.  
  6. mouse_event MOUSEEVENTF_ABSOLUTE, p.x, p.y, 0, GetMessageExtraInfo()
  7.  
  8. mouse_event MOUSEEVENTF_LEFTDOWN, p.x, p.y, 0, GetMessageExtraInfo()
  9.  
  10. mouse_event MOUSEEVENTF_LEFTUP, p.x, p.y, 0, GetMessageExtraInfo()
  11. End Sub
  12.  
espero se entienda mi conflicto, desde ya muchas gracias.


« Última modificación: 6 Julio 2016, 07:57 am por elmatador2 » En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: mouse (x, y) de un picture, ayuda porfas
« Respuesta #1 en: 7 Julio 2016, 06:01 am »

Creo que estás haciendo mucho copy-paste.
1)Intenta creando dos variables globales como POSX y POSY y otra sobre= boolean
2)dentro de la función del picturebox.mousemove asigna a posx = x y posy=y , a sobre true
3)dentro form.mousemove sobre = false
4)ahora dentro de la función click crea unas condiciones:
si sobre = verdadero mostrá posx y posy
sino
mostra x y 


En línea

elmatador2

Desconectado Desconectado

Mensajes: 29


Ver Perfil
Re: mouse (x, y) de un picture, ayuda porfas
« Respuesta #2 en: 7 Julio 2016, 07:04 am »

gracias por responder, no se si se entendio bien lo q hice... falta parte del codigo... en el picture meto una aplicacion ejecutada. la cual si solo tomo el X, Y del picture no me toma el ejecutable dentro de el, por eso tome las que ocupa el picture pero por fuera, y al momento de indicar al mouse que se posicione en el picture (cuando automaticamente encontro un punto del color especifico), por ejemplo en el punto "0" del picture, esas coordenadas me manda al punto "0" de la pantalla en su lugar...

Código
  1. Private Sub Command1_Click()
  2.  
  3. If sobre = True Then Print posx, posy
  4. Print X, Y
  5.  
  6. End Sub
  7.  
  8. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  9. sobre = False
  10. End Sub
  11.  
  12.  
  13. Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  14. posx = X
  15. posy = Y
  16. sobre = True
  17. End Sub
  18.  


este es el codigo q me dijiste, pero no veo como ponerlo en lo que yo verdaderamente necesito.
creo que no es lo que busco, yo quiero hacer que el puntero del mouse se mueva automaticamete al punto del picture encontrado, pero de la forma que lo hago me manda al punto que necesito, pero en vez de ser del picture lo hace en el form. o capas yo no veo como implementarlo, de ser asi podrias guiarme un poco?
En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: mouse (x, y) de un picture, ayuda porfas
« Respuesta #3 en: 7 Julio 2016, 08:04 am »

¿me estás charlando con lo de command1? y es más que obvio que falta code
Código
  1. Private Sub Click(p As POINTAPI)
  2. 'p.X and p.Y in absolute coordinates
  3. 'Put the mouse on the point
  4. SetCursorPos p.x, p.y 'esta parte me lleva a (x, Y) pero de la pantalla completa y necesito q tome las coordenadas dentro del picture 1
  5.  
  6. mouse_event MOUSEEVENTF_ABSOLUTE, p.x, p.y, 0, GetMessageExtraInfo()
  7.  
  8. mouse_event MOUSEEVENTF_LEFTDOWN, p.x, p.y, 0, GetMessageExtraInfo()
  9.  
  10. mouse_event MOUSEEVENTF_LEFTUP, p.x, p.y, 0, GetMessageExtraInfo()
  11. End Sub
  12.  

Código
  1. Private Sub Click(p As POINTAPI)
  2. 'p.X and p.Y in absolute coordinates
  3. 'Put the mouse on the point
  4. if sobre = True then
  5.         SetCursorPos p.posx, p.posy 'esta parte me lleva a (x, Y) pero de la pantalla completa y necesito   tome las coordenadas dentro del picture 1
  6.  
  7. mouse_event MOUSEEVENTF_ABSOLUTE, p.x, p.y, 0, GetMessageExtraInfo()
  8.  
  9. mouse_event MOUSEEVENTF_LEFTDOWN, p.x, p.y, 0, GetMessageExtraInfo()
  10.  
  11. mouse_event MOUSEEVENTF_LEFTUP, p.x, p.y, 0, GetMessageExtraInfo()
  12. else
  13. etc. para no repetir
  14. end if
  15. End Sub
  16.  
  17.  
  18.  
En línea

elmatador2

Desconectado Desconectado

Mensajes: 29


Ver Perfil
Re: mouse (x, y) de un picture, ayuda porfas
« Respuesta #4 en: 7 Julio 2016, 09:20 am »

perdon, pero sigue llevandome al punto incorrecto, es mas... sigue saliendo de los terminos del picture1 lo q quiero es q respete su:
Código
  1. For tPOS.y = Picture1.ScaleHeight = 0 To Picture1.ScaleHeight - 1
  2.  
  3. For tPOS.x = Picture1.ScaleWidth = 0 To Picture1.ScaleWidth - 1
  4.  
  5.  
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: mouse (x, y) de un picture, ayuda porfas
« Respuesta #5 en: 8 Julio 2016, 00:15 am »

Hola

Según he entendido, el problema es que medianle el algoritmo de iteración de píxeles del picturebox, obtienes unas coordenadas de la pantalla, pero tu quieres obtener las coordenadas dentro del area cliente de ese control picturebox?.

Sea como sea, puedes traducir un punto de la pantalla a un punto del área cliente de ese picturebox, y viceversa, utilizando las siguientes funciones win32 según el tipo de punto que tengas como referencia:

Un ejemplo de uso escrito en VB.NET para traducir unas coordenadas del área cliente de un control, a la pantalla:

Código
  1. Dim pcbHwnd As IntPtr = Me.PictureBox1.Handle
  2. Dim scrPt As Win32Point
  3.  
  4. NativeMethods.ClientToScreen(pcbHwnd, scrPt)
  5. Cursor.Position = scrPt

PD: Esto en VB.NET sería más simple y sin recurrir a código no administrado, pero por el código que has publicado deduzco que estás utilizando el antiguo VB6.

Saludos
« Última modificación: 8 Julio 2016, 00:18 am por Eleкtro » En línea



elmatador2

Desconectado Desconectado

Mensajes: 29


Ver Perfil
Re: mouse (x, y) de un picture, ayuda porfas
« Respuesta #6 en: 8 Julio 2016, 07:11 am »

si, muchas gracias por tu respuesta, si es vb6... ahi me pongo a leer esa funcion. gracias por tu ayuda.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda en vb con hiperviculos e imagen o picture
Programación Visual Basic
Red Mx 0 1,358 Último mensaje 21 Febrero 2006, 16:19 pm
por Red Mx
Ayuda con esto porfas!!
Scripting
TheTitan 4 2,797 Último mensaje 16 Agosto 2007, 20:54 pm
por TheTitan
ayuda porfas bugs wow 3.2.2a ayuda
Juegos y Consolas
marce_1994 2 3,329 Último mensaje 25 Febrero 2010, 16:04 pm
por Ariath
[Solucionado] Ayuda Dibujar en picture con el hwnd
Programación Visual Basic
Cromatico 4 2,663 Último mensaje 18 Noviembre 2010, 05:20 am
por Cromatico
[Aporte] [VS2012] Mouse XY (Devuelve las coordenadas del mouse)
Programación General
Eleкtro 3 5,555 Último mensaje 8 Noviembre 2012, 14:12 pm
por Danyfirex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines