Página 1 de 1

"mouseclick" y "Send" en segundo plano, ¿Posible?

Publicado: 21 Abr 2010, 22:47
por ziknos
Hola!

Ya puse un post hace un tiempo de un bot que estube creando y consegui hacer para un juego web con mousemoves y mouseclick.

pero ahora queria ir un poquito mas lejos, porque con esos comandos lo unico que podia hacer era tener el bot enchufado y yo no utilizar el pc o utilizar el pc sin usar el bot porque se movia el raton solo.. jaja

la pregunta es si seria posible hacer esos "clicks" y enviar texto(usuario y contraseña) sin que me moviera mi raton, osea poder hacer mas cosas al mismo tiempo.

el juego esta echo en Flash.

Muchas Gracias! :)

Re: "mouseclick" y "Send" en segundo plano, ¿Posible?

Publicado: 22 Abr 2010, 08:31
por Chefito
Con esas dos funciones hacer que tú quieres no es posible. Tienen que estar las ventanas activas. La única solución que te veo es cargar otro S.O. en una máquina virtual y ejecutar el script :smt003 .

Se pueden hacer cosas sin estar la ventana activa con las funciones que empiezan por Control..... (funciones para atacar los controles nativos de Windows). Pero si el juego está hecho en flash, no es posible hacerlo con estas funciones :smt011 . Puede que acepte pasarle algunos parámetros al juego. Esto se puede averiguar si el juego está en una página web y ésta utiliza algún tipo de parámetros en su código html para llamar al juego. Habría que mirarlo. Pero seguro que si se puede hacer algo será muy muy dificil :smt021 .

Los programas flash son muy puñeteros :smt012 .

Saludos.

Re: "mouseclick" y "Send" en segundo plano, ¿Posible?

Publicado: 22 Abr 2010, 11:41
por BasicOs
Es como dice Chefito, con las funciones Controlxxx. O bien la instalación de la máquina virtual minimizada va muy bien, por ejemplo virtualbox y vmware que son gratuitos eg. con un Windows Xp
MouseClick <== La ventana escondida no tienen ninguna posición del ratón - no se puede
Send <== ControlSend()
PixelGetColor <== como el ratón, lo que no se ve no se puede reconocer no puedes...

Salu22:)
Edit:
Aparte de esto por si te sirve para algo pero no es seguro, otra función que hace algo parecido a un mouseclick, pero usa una dll y envia msgs internos a la aplicación. _MouseClickPlus() .

Código: Seleccionar todo

;===============================================================================

;
; Function Name:  _MouseClickPlus()
; Version added:  0.1
; Description:  Sends a click to window, not entirely accurate, but works
;                minimized.
; Parameter(s):   $Window    =  Title of the window to send click to
;                $Button     =  "left" or "right" mouse button
;                $X       =  X coordinate
;                $Y       =  Y coordinate
;                $Clicks     =  Number of clicks to send
; Remarks:      You MUST be in "MouseCoordMode" 0 to use this without bugs.
; Author(s):      Insolence <[email protected]>
;
;===============================================================================

Func _MouseClickPlus($Window, $Button = "left", $X = "", $Y = "", $Clicks = 1)
  Local $MK_LBUTTON    =  0x0001
  Local $WM_LBUTTONDOWN   =  0x0201
  Local $WM_LBUTTONUP    =  0x0202
 
  Local $MK_RBUTTON    =  0x0002 
  Local $WM_RBUTTONDOWN   =  0x0204
  Local $WM_RBUTTONUP    =  0x0205

  Local $WM_MOUSEMOVE    =  0x0200
 
  Local $i              = 0
 
  Select
  Case $Button = "left"
     $Button     =  $MK_LBUTTON
     $ButtonDown =  $WM_LBUTTONDOWN
     $ButtonUp   =  $WM_LBUTTONUP
  Case $Button = "right"
     $Button     =  $MK_RBUTTON
     $ButtonDown =  $WM_RBUTTONDOWN
     $ButtonUp   =  $WM_RBUTTONUP
  EndSelect
 
  If $X = "" OR $Y = "" Then
     $MouseCoord = MouseGetPos()
     $X = $MouseCoord[0]
     $Y = $MouseCoord[1]
  EndIf
 
  For $i = 1 to $Clicks
     DllCall("user32.dll", "int", "SendMessage", "hwnd", WinGetHandle($Window), "int", $WM_MOUSEMOVE, "int", 0, "long", _MakeLong($X, $Y))
       
     DllCall("user32.dll", "int", "SendMessage", "hwnd", WinGetHandle($Window), "int", $ButtonDown, "int", $Button, "long", _MakeLong($X, $Y))
       
     DllCall("user32.dll", "int", "SendMessage", "hwnd", WinGetHandle($Window), "int", $ButtonUp, "int", $Button, "long", _MakeLong($X, $Y))
  Next
EndFunc

Func _MakeLong($LoWord,$HiWord)
  Return BitOR($HiWord * 0x10000, BitAND($LoWord, 0xFFFF))
EndFunc

Re: "mouseclick" y "Send" en segundo plano, ¿Posible?

Publicado: 22 Abr 2010, 12:11
por ziknos
Muchas gracias a los 2, pregunte si se podia porque segun tengo entendido en otros idiomas de programacion si era posible, pero solo se manejar un poco este..

saludos y gracias de nuevo:)

Re: "mouseclick" y "Send" en segundo plano, ¿Posible?

Publicado: 22 Abr 2010, 12:27
por BasicOs
ziknos escribió:entendido en otros idiomas de programacion si era posible:)
En cual, tienes un ejemplo?
Creo que es algo interno de la mecánica que se ejecuta, por ejemplo: como puedes usar un pixel que no se ve? o lo del ratón, o con coordenadas que no existen al 100% ...
NO obstante si tuvieras una dll que hace el truco en ese lenguaje se puede hacer como el _MouseClickPlus(), se puede usar la dll dentro de una función de Autoit....
Lo que consiguen estas funciones de por sí es algo increible que es esclavizar al pc al nivel del OS, y fuera del PROGRAMA que se use y simular al usuario.
Salu22:)

Re: "mouseclick" y "Send" en segundo plano, ¿Posible?

Publicado: 22 Abr 2010, 12:40
por ziknos
BasicOs escribió:
ziknos escribió:entendido en otros idiomas de programacion si era posible:)
En cual, tienes un ejemplo?
no, no tengo ningun ejemplo, lo digo porque hay bots por ahi que funcionan minimizando la pantalla de un juego, pero kizas es porque no esta en flash, ni idea.

gracias :=)

Re: "mouseclick" y "Send" en segundo plano, ¿Posible?

Publicado: 22 Abr 2010, 21:51
por Juanchi
justo pasaba x aca y me acorde de un programa para MU (Un MMORPG) es un autoclicker, hace lo que vos queres pero como dijo BasicOs trae un dll q hace la funcion del click en la ventana minimizada.

Si te sirve de algo se llama "Mu Minimizer", quisas puedas adaptar el dll q trae a lo q vos queres hacer...

Salu2!

Re: "mouseclick" y "Send" en segundo plano, ¿Posible?

Publicado: 23 Abr 2010, 00:28
por ziknos
BasicOs escribió:Es como dice Chefito, con las funciones Controlxxx. O bien la instalación de la máquina virtual minimizada va muy bien, por ejemplo virtualbox y vmware que son gratuitos eg. con un Windows Xp
MouseClick <== La ventana escondida no tienen ninguna posición del ratón - no se puede
Send <== ControlSend()
PixelGetColor <== como el ratón, lo que no se ve no se puede reconocer no puedes...

Salu22:)
Edit:
Aparte de esto por si te sirve para algo pero no es seguro, otra función que hace algo parecido a un mouseclick, pero usa una dll y envia msgs internos a la aplicación. _MouseClickPlus() .

Código: Seleccionar todo

;===============================================================================

;
; Function Name:  _MouseClickPlus()
; Version added:  0.1
; Description:  Sends a click to window, not entirely accurate, but works
;                minimized.
; Parameter(s):   $Window    =  Title of the window to send click to
;                $Button     =  "left" or "right" mouse button
;                $X       =  X coordinate
;                $Y       =  Y coordinate
;                $Clicks     =  Number of clicks to send
; Remarks:      You MUST be in "MouseCoordMode" 0 to use this without bugs.
; Author(s):      Insolence <[email protected]>
;
;===============================================================================

Func _MouseClickPlus($Window, $Button = "left", $X = "", $Y = "", $Clicks = 1)
  Local $MK_LBUTTON    =  0x0001
  Local $WM_LBUTTONDOWN   =  0x0201
  Local $WM_LBUTTONUP    =  0x0202
 
  Local $MK_RBUTTON    =  0x0002 
  Local $WM_RBUTTONDOWN   =  0x0204
  Local $WM_RBUTTONUP    =  0x0205

  Local $WM_MOUSEMOVE    =  0x0200
 
  Local $i              = 0
 
  Select
  Case $Button = "left"
     $Button     =  $MK_LBUTTON
     $ButtonDown =  $WM_LBUTTONDOWN
     $ButtonUp   =  $WM_LBUTTONUP
  Case $Button = "right"
     $Button     =  $MK_RBUTTON
     $ButtonDown =  $WM_RBUTTONDOWN
     $ButtonUp   =  $WM_RBUTTONUP
  EndSelect
 
  If $X = "" OR $Y = "" Then
     $MouseCoord = MouseGetPos()
     $X = $MouseCoord[0]
     $Y = $MouseCoord[1]
  EndIf
 
  For $i = 1 to $Clicks
     DllCall("user32.dll", "int", "SendMessage", "hwnd", WinGetHandle($Window), "int", $WM_MOUSEMOVE, "int", 0, "long", _MakeLong($X, $Y))
       
     DllCall("user32.dll", "int", "SendMessage", "hwnd", WinGetHandle($Window), "int", $ButtonDown, "int", $Button, "long", _MakeLong($X, $Y))
       
     DllCall("user32.dll", "int", "SendMessage", "hwnd", WinGetHandle($Window), "int", $ButtonUp, "int", $Button, "long", _MakeLong($X, $Y))
  Next
EndFunc

Func _MakeLong($LoWord,$HiWord)
  Return BitOR($HiWord * 0x10000, BitAND($LoWord, 0xFFFF))
EndFunc
mirare la funcion esa a ver como funciona aunque no la entiendo mucho..

Juanchi escribió:justo pasaba x aca y me acorde de un programa para MU (Un MMORPG) es un autoclicker, hace lo que vos queres pero como dijo BasicOs trae un dll q hace la funcion del click en la ventana minimizada.

Si te sirve de algo se llama "Mu Minimizer", quisas puedas adaptar el dll q trae a lo q vos queres hacer...

Salu2!
Hola juanchi, muchas gracias, le echare un vistazo al "Mu Minimizer" que comentas y os cuento que tal me funciono.

gracias!

Re: "mouseclick" y "Send" en segundo plano, ¿Posible?

Publicado: 23 Abr 2010, 00:43
por ziknos
Bueno, pues me descargue el "Mu Minimizer" junto con el autoclick que funciona en window mode, pero sin tener el "Mu" funcionando dice que no detecta el juego osea que no puedo hacer nada.

una pregunta que me ha surgido, para el bot estoy haciendo una GUI( que luego o mañana posteare un par de dudas acerca de eso) en la cual la parte superior he echo que se muestre el juego, osea se abre el link del juego directamente en la pantalla de poner usuario y contraseña.

tampoco habria ninguna manera de hacer "clicks" dentro de mi GUI (Que coincidiran con el juego) creando objetos o alguna forma asi haciendolo tambien en 2º plano?

no se si me explico.. es decir crear como de "fondo" algunos botones o cualquier cosa dentro de mi GUI que coincidan justamente con los clicks que tendria que hacer en el flash y asi poder hacer los clicks en 2ºplano.

estoy diciendo una locura o algo asi seria posible?

gracias de nuevo :)

Re: "mouseclick" y "Send" en segundo plano, ¿Posible?

Publicado: 23 Abr 2010, 01:53
por BasicOs
Siempre puedes trabajar con el modo de coordenadas (OPT()), y usar las coordenadas relativas a la ventana, también puedes localizar pixeles, colores y formas con las funciones pixel, pero claro esto no va en segundo plano.
Tendrías que localizar los controles internos del Mu para poder enviar un msg directo, pero eso creo que hay que meterse en las tripas, Puedes probar con los controles del gui, a ver si es posible. ¿no se si alguien ha experimentado con esto? :smt017 :smt017 :smt017
Salu22:)

Re: "mouseclick" y "Send" en segundo plano, ¿Posible?

Publicado: 23 Abr 2010, 19:58
por ziknos
BasicOs escribió:Siempre puedes trabajar con el modo de coordenadas (OPT()), y usar las coordenadas relativas a la ventana, también puedes localizar pixeles, colores y formas con las funciones pixel, pero claro esto no va en segundo plano.
Tendrías que localizar los controles internos del Mu para poder enviar un msg directo, pero eso creo que hay que meterse en las tripas, Puedes probar con los controles del gui, a ver si es posible. ¿no se si alguien ha experimentado con esto? :smt017 :smt017 :smt017
Salu22:)
bueno pues entonces lo dejare estar y directamente lo usare con una maquina virtual como me comentasteis arriba, gracias :)

Re: "mouseclick" y "Send" en segundo plano, ¿Posible?

Publicado: 24 Abr 2010, 02:49
por Juanchi
ziknos escribió:Bueno, pues me descargue el "Mu Minimizer" junto con el autoclick que funciona en window mode, pero sin tener el "Mu" funcionando dice que no detecta el juego osea que no puedo hacer nada.
Ammm, un pequeño detalle... XD
No me habia dado cuenta de eso.

Re: "mouseclick" y "Send" en segundo plano, ¿Posible?

Publicado: 24 Abr 2010, 03:53
por ziknos
Juanchi escribió:
ziknos escribió:Bueno, pues me descargue el "Mu Minimizer" junto con el autoclick que funciona en window mode, pero sin tener el "Mu" funcionando dice que no detecta el juego osea que no puedo hacer nada.
Ammm, un pequeño detalle... XD
No me habia dado cuenta de eso.
jeje pues si.. sera un autoclick echo adrede para el juego.

saludos