Clickear sin mover mouse

Iniciado por BahiereTTi, 27 Julio 2011, 07:44 AM

0 Miembros y 1 Visitante están viendo este tema.

BahiereTTi

Leí, pero no lo entendí.

Osea, es facil decirme que me falta en ese código para que a esa coordenada que está en el timer haga click ahí.

Hasseds

Creo que te está faltando el Hwnd del control al que le querés enviar el click, y también las coordenadas  ( No de pantalla sino del control) en la que queres que   llegue el click, por eso te sugerí  leér y practicar con ClientToScreen, GetWindowRect, GetClientRect entre otras (para tener idea de coordenadas de pantalla y coordenadas de controles), y tambien tener una idea de como obtener  el manejador  de ventanas y controles (Hwnd) con FindWindow o FindWindowEx entre otras, para enviarles mensajes con SendMessage o PostMessage por ejemplo.
Por ultimo te digo que no todas las ventanas  son iguales y algunas son dificiles de entrarle, amigo, si no lo entendiste con el ejemplo q te dejé ... no podría explicarte todo esto.  ;)   


Sergio Desanti

BahiereTTi

Pero es mucho :S

Yo quiero hacer solo 1 simple cosa, no quiero aprenderme y estudiarme todo :S, no quiero entrar muy adentro al tema, solo hacer lo que plantie en el tema.


Si me ayudarías más profundo te agradecería :S


Para vos debe ser facil pasarme el código completito :$

VanX

una pregunta asi, para que quieres hacer click y que no se vea el mouse  ;D

BahiereTTi

Son programas, quiero tratar de llegar a ese objetivo, pero no me ayudan.


someRandomCode

Estan siendo objetivos.
A veces, una "cosa simple", tiene mucho complejo.
Decir quiero hacer un auto es facil, pero estudiarse todo lo de mecanica no lo es.
Te doy un ejemplo mas relacionado? Fijate lo tedioso que es hacer una ventana usando las API de Windows.

Los chicos lo que te estan diciendo es lo que tenes que seguir.
El HWND de un elemento es un identificador que guarda windows del mismo.
En Windows, cada cosa es como una ventana, cada boton, cada menu, cada cosa tiene su HANDLER (un manejador, u identificador).

Lo que se te esta sugiriendo es que uses:

GetWindowRect para obtener una estructura de tipo RECT, que dice las coordenadas de una ventana/control en la pantalla.

FindWindow que encuentra una ventana ya sea por el titulo, o por la clase (la "clase" es un parametro que se le asigna a una ventana/control cuando es creado).

Despues de eso, que uses SendInput para enviar ese click (ese INPUT, que esta definido por una estructura que se llama MOUSEINPUT) para enviarla.

Para saber cual es el HWND del boton/cosa que quieras clickear, si tenes el Spy++(Viene con el Visual Studio) te puede dar una pista al respecto. Sino, lo que tendrias que hacer, es saber el nombre de la clase, saber la ventana donde esta contenido, o --haciendo una solucion re chapucera-- asumiendo que hay un solo boton/control que dice eso, obtener el texto segun la funcion GetDlgItemText y si el texto y la clase son las que corresponden, ahi tenes tu HWND.

Espero que asi lo entiendas, porque le puse todo lo menos tecnico que pude.


BlackZeroX

#26
.
Cita de: someRandomCode en 23 Agosto 2011, 06:16 AM
Te doy un ejemplo mas relacionado? Fijate lo tedioso que es hacer una ventana usando las API de Windows.
Crear la ventana es facil... lo TEDIOSO pero no imposible es manipular los eventos que se producen en su CallBack respectivo.

Cita de: someRandomCode en 23 Agosto 2011, 06:16 AM
En Windows, cada cosa es como una ventana, cada boton, cada menu...
no son como... son ventanas, almenos que esten dibujadas... msn... algunos juegos que usen OpenGL, SDL, Ogre...

Cita de: BahiereTTi en 16 Agosto 2011, 03:54 AM
Pero es mucho :S

Yo quiero hacer solo 1 simple cosa, no quiero aprenderme y estudiarme todo :S, no quiero entrar muy adentro al tema, solo hacer lo que plantie en el tema.

Si quieres HACER ALGO DEBES Y TIENES que adentrate en el tema, ya que no puedes crear algo de la nada, programadores hay muchos todos podemos ser programadores sin EXCEPCIÓN alguna, pero ANALISTAS, INVESTIGADORES, LECTORES, COMPETENTES, estre otras caracteristicas, solo pueden serlo muy pocos... independientemende de donde estudies o hayas estudiado.

En dado caso siempre tienes la opcion de contratar a un Analista Programador y pagar por el Codigo Fuente que por cierto te saldra un OJO DE LA CARA.

Dulce Infierno Lunar!¡.
The Dark Shadow is my passion.

someRandomCode

BlackZeroX[caracteres que me da pereza copiar y pegar, pero se ven cool]:
pa, todo bien, pero dije, estoy tratando de ser lo menos tecnico posible. Dejame ponerle al pibe algo que lo familiarize o le de un toque de calma a ver si lo entiende ;)

Y para alguien que debio ver a alguien mas haciendo Visual Basic, le puede parecer que es facilisimo.

Ademas, los message maps no son tan complicados..

Pero por el resto, aprecio que le aclares, y espero que tome la palabra de todos y se ponga..

BahiereTTi

Cita de: someRandomCode en 23 Agosto 2011, 06:16 AM
Estan siendo objetivos.
A veces, una "cosa simple", tiene mucho complejo.
Decir quiero hacer un auto es facil, pero estudiarse todo lo de mecanica no lo es.
Te doy un ejemplo mas relacionado? Fijate lo tedioso que es hacer una ventana usando las API de Windows.

Los chicos lo que te estan diciendo es lo que tenes que seguir.
El HWND de un elemento es un identificador que guarda windows del mismo.
En Windows, cada cosa es como una ventana, cada boton, cada menu, cada cosa tiene su HANDLER (un manejador, u identificador).

Lo que se te esta sugiriendo es que uses:

GetWindowRect para obtener una estructura de tipo RECT, que dice las coordenadas de una ventana/control en la pantalla.

FindWindow que encuentra una ventana ya sea por el titulo, o por la clase (la "clase" es un parametro que se le asigna a una ventana/control cuando es creado).

Despues de eso, que uses SendInput para enviar ese click (ese INPUT, que esta definido por una estructura que se llama MOUSEINPUT) para enviarla.

Para saber cual es el HWND del boton/cosa que quieras clickear, si tenes el Spy++(Viene con el Visual Studio) te puede dar una pista al respecto. Sino, lo que tendrias que hacer, es saber el nombre de la clase, saber la ventana donde esta contenido, o --haciendo una solucion re chapucera-- asumiendo que hay un solo boton/control que dice eso, obtener el texto segun la funcion GetDlgItemText y si el texto y la clase son las que corresponden, ahi tenes tu HWND.

Espero que asi lo entiendas, porque le puse todo lo menos tecnico que pude.




Mi problema es que no se bien unir todo esto...


Bueno dejen, ya fue, tiro todo el proyecto a la ***** :S, estuve leyendo y no entendí nada...

Solo cuesta esperar que venga alguien bueno y me pase el código completo :S

Para ustedes que saben todo, no les cuesta nada gastar 2 minutos de su vida en un código urgente para ayudarme a mi.

someRandomCode

Queres codigo?

#define _WIN32_WINNT 0x403
#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstancia, HINSTANCE hAnteriores, LPTSTR ldc, int estado) {
INPUT entrada;
entrada.type = INPUT_MOUSE;
entrada.mi.dx = 0;
entrada.mi.dy = 0;
entrada.mi.mouseData = 0;
entrada.mi.dwFlags = MOUSEEVENTF_ABSOLUTE;
entrada.mi.time = 0;
entrada.mi.dwExtraInfo = 0;
SendInput(1, &entrada, sizeof(INPUT));
}


Es en C, te da un ejemplo de como enviar.
Ahora mangueale a otro un ejemplo de como conseguir usar GetWindowLong para conseguir las coordenadas del boton.

Pedir regalado el codigo es practicamente mala educacion.

Y sino, hace como te dijeron, y pagale a alguien.