Bueno, hay un tal macrocrack que hace click en una coordenada todo el tiempo sin mover el mouse...
Quiero lograrlo, pero no me sale.
Lo único que logro es mover el mouse a esa coordenada automaticamente.
Pienso que la única formar de clickear en una coordenada es con el MOUSE, pero el "MACROCRACK" tiene un autoclickear en una ubicación sin mover el mouse a esa coordenada.
claro que se puede xD, no es muy complicado, puedes usar la funcion mouse_event para realizar los click
busca como hacer un hook al mouse y un ejemplo de autockicker creo que es de blackzerox
Busca sobre como usar SendInput (http://msdn.microsoft.com/en-us/library/ms646310%28v=vs.85%29.aspx)
y INPUT Structure (http://msdn.microsoft.com/en-us/library/ms646270%28v=vs.85%29.aspx) (junto a MOUSEINPUT Structure (http://msdn.microsoft.com/en-us/library/ms646273%28v=vs.85%29.aspx))
Hay un hilo abierto por LeandroA sobre la misma pregunta :P
Me están dando muchas cosas para estudiar en Ingles.
Me aseguran que esto me llevaría al exito de lo que quiero?
Me pueden explicar algo ustedes?
Aprender VB te va a llevar definitivamente adonde queres llegar :xD >:D
Yo tambien busco la forma de hacer click sin mover el mouse.. alguien podria ayudar??
SendMessage()
...
Para clickear sin mover el mouse, tenés que dejar la mano fija, te recomiendo presionar el mouse así podés hacer click sin moverlo xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
En realidad lo que querés hacer es clickear sin mover el cursor (supongo) tal vez ésto ayude -> API mouse_event
Cita de: BlackZeroX▓▓▒▒░░ en 28 Julio 2011, 10:07 AM
SendMessage()
...
Totalmente, millones de ejmplos hay de SendMessage, debes usar esta API.
SendMessage (ByVal lParam As Long)
+
Make_lParam
Function Make_lParam(ByVal x As Integer, ByVal y As Integer) As Long
Make_lParam = (x And &HFFFF&) Or (y * &H10000)
End Function
Function Make_lParam(ByVal x As Integer, ByVal y As Integer) As Long
Make_lParam = (x And &HFFFF&) Or (y * &H10000)
End Function
¿?
Así?
Pero, que en un timer pongo frmmain.make
O que?
Y tendría que poner: X = COORDENADA
Y: Y = COORDENADA
Pero, no entiendo ese código.
La cosa es que en un timer pase eso.
¿Pongo ese código en un timer?
Pero donde modifico las coordenadas?
Ayudaaaa
Option Explicit
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Sub Form_Load()
ScaleMode = 3
Timer1.Interval = 16
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Static CountClickX15Y15 As Long
If Button = vbLeftButton And x = 15 And y = 15 Then
CountClickX15Y15 = CountClickX15Y15 + 1
Caption = CountClickX15Y15
End If
End Sub
Function Make_lParam(ByVal x As Integer, ByVal y As Integer) As Long
Make_lParam = x Or (y * &H10000)
End Function
Private Sub Timer1_Timer()
Call SendMessage(Me.hwnd, &H201, &H0&, Make_lParam(15, 15))
Call SendMessage(Me.hwnd, &H202, &H0&, Make_lParam(15, 15))
End Sub
.
Gracias...
El 1er codigo va en un modulo y el 2do en el form.
Agrego 1 timer 1 command button.
En el modulo, acá:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Static CountClickX15Y15 As Long
If Button = vbLeftButton And x = 630 And y = 390 Then
CountClickX15Y15 = CountClickX15Y15 + 1
Caption = CountClickX15Y15
End If
End Sub
Me tiró a CAPTION "VARIABLE NO DEFINIDA"
¿Como la declaro y en donde me recomendas?
Olvidate del segundo código... el pimer codigo va en un Form, eso es lo que pediste, como mandar un Click por coordenadas sin mover el mouse !!!
PD:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Nunca puede ir en un Módulo...
Buenisimo, pero dudas.
1ero, para que el command1 abre el Pinball?
Yo no pedí eso :S
2do
Donde configuro que me haga click?
Donde está para poner la coordenada X y la Y?
Olvidate del codigo del Pinball, ya lo quité para q no te confundas, analizá el codigo que te dejé para entender como mandar un Click a una coordenada específica de un control sin mover el mouse !!!
Buenisimo, pero me podes explicar como funciona?
Porque no lo entiendo.
Mira como me quedo:
Option Explicit
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Sub Form_Load()
ScaleMode = 3
Timer1.Interval = 16
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Static CountClickX15Y15 As Long
If Button = vbLeftButton And x = 650 And y = 380 Then
CountClickX15Y15 = CountClickX15Y15 + 1
Caption = CountClickX15Y15
End If
End Sub
Function Make_lParam(ByVal x As Integer, ByVal y As Integer) As Long
Make_lParam = x Or (y * &H10000)
End Function
Private Sub Timer1_Timer()
Call SendMessage(Me.hwnd, &H201, &H0&, Make_lParam(650, 380))
Call SendMessage(Me.hwnd, &H202, &H0&, Make_lParam(650, 380))
End Sub
Modifique eso de and y = 15 and x = 15 y lo del timer1 quedo así el timer1:
Private Sub Timer1_Timer()
Call SendMessage(Me.hwnd, &H201, &H0&, Make_lParam(650, 380))
Call SendMessage(Me.hwnd, &H202, &H0&, Make_lParam(650, 380))
End Sub
650 = x
380 = y
Pero, sigue sin hacer click en esa coordenada .
Igual, gracias por tratar de ayudarme :S
http://msdn.microsoft.com/en-us/library/ms644950(v=vs.85).aspx (http://msdn.microsoft.com/en-us/library/ms644950(v=vs.85).aspx)
http://msdn.microsoft.com/en-us/library/ms633499(v=vs.85).aspx (http://msdn.microsoft.com/en-us/library/ms633499(v=vs.85).aspx)
http://msdn.microsoft.com/en-us/library/ms633500(v=VS.85).aspx (http://msdn.microsoft.com/en-us/library/ms633500(v=VS.85).aspx)
http://msdn.microsoft.com/en-us/library/aa931003.aspx (http://msdn.microsoft.com/en-us/library/aa931003.aspx)
http://msdn.microsoft.com/en-us/library/ms633519(v=VS.85).aspx (http://msdn.microsoft.com/en-us/library/ms633519(v=VS.85).aspx)
http://msdn.microsoft.com/en-us/library/ms633503(v=VS.85).aspx (http://msdn.microsoft.com/en-us/library/ms633503(v=VS.85).aspx)
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í.
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. ;)
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 :$
una pregunta asi, para que quieres hacer click y que no se vea el mouse ;D
Son programas, quiero tratar de llegar a ese objetivo, pero no me ayudan.
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.
.
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!¡.
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..
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.
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.
Cita de: Hasseds en 16 Agosto 2011, 00:20 AM
http://msdn.microsoft.com/en-us/library/ms644950(v=vs.85).aspx (http://msdn.microsoft.com/en-us/library/ms644950(v=vs.85).aspx)
http://msdn.microsoft.com/en-us/library/ms633499(v=vs.85).aspx (http://msdn.microsoft.com/en-us/library/ms633499(v=vs.85).aspx)
http://msdn.microsoft.com/en-us/library/ms633500(v=VS.85).aspx (http://msdn.microsoft.com/en-us/library/ms633500(v=VS.85).aspx)
http://msdn.microsoft.com/en-us/library/aa931003.aspx (http://msdn.microsoft.com/en-us/library/aa931003.aspx)
http://msdn.microsoft.com/en-us/library/ms633519(v=VS.85).aspx (http://msdn.microsoft.com/en-us/library/ms633519(v=VS.85).aspx)
http://msdn.microsoft.com/en-us/library/ms633503(v=VS.85).aspx (http://msdn.microsoft.com/en-us/library/ms633503(v=VS.85).aspx)
Bah...
Yo tambien busco este codigo
pero veo que aqui.. se sienten los muy... "programadores" que te dan referencias y links de lectura..
Si alguien pone una pregunta y pone en claro que no sabe mucho sobre el tema..creo que deberian apoyarlo..
Pero bueh.. veo que ahora responderan a cada pregunta con un enlace de MSDN Library
q verguenza..
Gracias por la GRAN AYUDA
Cita de: BahiereTTi en 27 Julio 2011, 07:44 AM
Bueno, hay un tal macrocrack que hace click en una coordenada todo el tiempo sin mover el mouse...
yalosabes, Si aunque sea hubieras leido todo el hilo...
http://foro.elhacker.net/programacion_visual_basic/clickear_sin_mover_mouse-t334718.0.html;msg1652116#msg1652116
http://foro.elhacker.net/programacion_visual_basic/wmnchittest-t336567.0.html;msg1652687#msg1652687
Cita de: yalosabes en 28 Agosto 2011, 19:53 PM
Bah...
q verguenza..
Gracias por la GRAN AYUDA
Nada !!!!
Cita de: yalosabes en 28 Agosto 2011, 19:53 PM
Bah...
Yo tambien busco este codigo
pero veo que aqui.. se sienten los muy... "programadores" que te dan referencias y links de lectura..
Si alguien pone una pregunta y pone en claro que no sabe mucho sobre el tema..creo que deberian apoyarlo..
Pero bueh.. veo que ahora responderan a cada pregunta con un enlace de MSDN Library
q verguenza..
Gracias por la GRAN AYUDA
Mucho ayuda quien no estorba dice el dicho, total solo le faltan algunos toques a el codigo ya expuesto de
Hasseds con las apis que se hacen referencia, tampoco es un foro de negreros a disposicion.
Dulces Lunas!¡.