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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Es Posible hacer un autoclick pixeles?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Es Posible hacer un autoclick pixeles?  (Leído 3,215 veces)
Tzdah

Desconectado Desconectado

Mensajes: 21


O.D.P


Ver Perfil
Es Posible hacer un autoclick pixeles?
« en: 23 Septiembre 2012, 04:25 am »

Me refiero a yo poner un color hexadecimal y al activar el autoclick se mueva a la posición de ese color.

Saludos


En línea

~.L.~

Desconectado Desconectado

Mensajes: 27


Dándole uso al tiempo


Ver Perfil
Re: Es Posible hacer un autoclick pixeles?
« Respuesta #1 en: 24 Septiembre 2012, 01:46 am »

Hola DEINO, revisa si alguna de estas funciones te sirven:
http://www.ehowenespanol.com/leer-pixeles-cuadros-imagenes-visual-basic-6-como_120126/
http://deepdarkprocess.wordpress.com/2010/09/09/vb6-leer-un-pixel-de-una-imagen/

Con estos mismos, lo que puedes hacer tú es leer los pixeles y el resto queda a cuenta tuya.
Un saludo, ~.L.~


En línea

Si me necesitas por algun motivo o ocasión.
Skype: luuq.ruppi
MSN: luqaspeola1@hotmail.com

                                 ~.L.~
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Es Posible hacer un autoclick pixeles?
« Respuesta #2 en: 27 Septiembre 2012, 05:04 am »

Me refiero a yo poner un color hexadecimal y al activar el autoclick se mueva a la posición de ese color.

Saludos

Te dire los pasos por que no cuento con vb6...

1.- Debes obtener el descriptor DC (hDC) de la pantalla (se obtiene con una API que se llama mas o menos así: GetDC() ).
2.- Con esto realizado tienes DOS posibilidades para obtener los pixeles:
2.1.-Proceso LENTO (Internamente se convierte en un BITMAP y lo destruye por cada llamada a GetPixel...):
Usar el API GetPixel() (le debes pasar el hDC en su parámetro, que te retorno el API GetDC() +  las coordenadas [X, Y]):
2.2.- Proceso RAPIDO:
Transformar el hDC en un Bitmap y recorrer la sección de datos del color como un array, obviamente teniendo en cuenta el ancho y alto (Equivalentes a el tamaño de la ventana que obtuviste el hDC con GetDC(), si es de la pantalla entonces es equivalente a tu resolución, hay APIS para obtener la resolución...).
Para transformar en un BITMAP debes usar las APIS de la GDI... puedes usar las APIS: CreateCompatibleBitmap()... y obtienes TODOS los bytes de cada color con el API: GetDIBits()... un ejemplo (Esta en C pero no difiere mucho pues solo son llamas a API para obtener un Screenshot de la pantalla):

Lo que esta después de la linea 26 no importa de mucho puesto que en la 26 ya obtienes EL PUNTERO a la sección donde están LOS BYTES en grupos de 3 bytes (cada byte es un color: Red, Green and Blue: RGB, si no mal recuerdo están inversos... BGR... no lo recuerdo bien) este puntero (BitmapData) lo puedes recorrer con CopyMemory() o APIS para el acceso a la memoria...

Código
  1.  
  2. int SaveScreen()
  3. {
  4.   HDC hdc = GetDC(NULL), hdcMem = CreateCompatibleDC (hdc);
  5.   int iWidth = GetDeviceCaps(hdc, HORZRES), iHeight = GetDeviceCaps(hdc, VERTRES), iSaved = SaveDC(hdcMem);
  6.   HBITMAP hBitmap = CreateCompatibleBitmap(hdc, iWidth, iHeight);
  7.   BYTE* BitmapData;
  8.  
  9.   int numBytes = 3 * (iWidth * iHeight);
  10.  
  11.   BitmapData = new BYTE [numBytes];
  12.  
  13.   BITMAPINFOHEADER bmi = {0};
  14.   BITMAPFILEHEADER bmf = {0};
  15.  
  16.   bmi.biSize = sizeof(BITMAPINFOHEADER);
  17.   bmi.biPlanes = 1;
  18.   bmi.biBitCount = 24;
  19.   bmi.biWidth = iWidth;
  20.   bmi.biHeight = iHeight;
  21.  
  22.   SelectObject(hdcMem, hBitmap);
  23.   BitBlt(hdcMem, 0, 0, iWidth, iHeight, hdc, 0, 0, SRCCOPY);
  24.   RestoreDC(hdcMem, iSaved);
  25.  
  26.   GetDIBits(hdc, hBitmap, 0, iHeight, BitmapData, (BITMAPINFO*)&bmi, DIB_RGB_COLORS);
  27.  
  28.   bmf.bfOffBits = sizeof (bmf) + sizeof (bmi);
  29.   bmf.bfSize = bmf.bfOffBits + numBytes;
  30.   bmf.bfType = 0x4D42;
  31.  
  32.   char filename[30];
  33.   sprintf(filename, "%i.bmp", time(NULL)); //saveDirectory is a global variable.
  34.  
  35.   FILE* pFile = fopen(filename, "wb");
  36.   if(pFile == NULL) return 0;
  37.  
  38.   fwrite (&bmf, sizeof (bmf), 1, pFile);
  39.   fwrite (&bmi, sizeof (bmi), 1, pFile);
  40.   fwrite (BitmapData, sizeof (BYTE), numBytes, pFile);
  41.   fclose (pFile);
  42.  
  43.   delete [] BitmapData;
  44.  
  45.   DeleteObject(hBitmap);
  46.   DeleteDC(hdcMem);
  47.   ReleaseDC(NULL, hdc);
  48.  
  49.   return 1;
  50. }
  51.  
  52.  

3.- Recorre la fila de los pixeles por cada columna y obtén el pixel, a continuación compara lo con el color que buscas:

Si quieres los colores RGB de un color... tienes alguna de estas dos funciones:

http://foro.elhacker.net/programacion_visual_basic/recopilacion_de_funciones_con_operaciones_binarias-t329680.0.html;msg1623777#msg1623777

Las funciones te retornar los colores RGB y en base a esto puedes hacer comparaciones de tolerancia de colores mas exactos...

Dulces Lunas!¡.
« Última modificación: 27 Septiembre 2012, 05:11 am por BlackZeroX (Astaroth) » En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿ Es posible hacer esto??? « 1 2 3 »
Desafíos - Wargames
Golfo1974 23 23,596 Último mensaje 18 Abril 2011, 03:24 am
por Gambinoh
es posible hacer esto ...
PHP
pana88 5 3,360 Último mensaje 23 Julio 2008, 14:11 pm
por pana88
COMO HACER UN AUTOCLICK URGENTE!!!!
.NET (C#, VB.NET, ASP)
Sh982 1 6,388 Último mensaje 15 Diciembre 2011, 05:58 am
por Unbr0ken
Autoclick de Pixeles « 1 2 »
Programación Visual Basic
PIXMA 17 8,806 Último mensaje 1 Diciembre 2012, 16:59 pm
por PIXMA
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines