Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: MrDoggy en 11 Febrero 2017, 21:50 pm



Título: Script para dar clicks
Publicado por: MrDoggy en 11 Febrero 2017, 21:50 pm
Buenas! En este tema estoy haciendo referencia a archivos .bat con Windows. Espero que podáis ayudarme.

Quería saber si hay alguna manera de que al darle a un botón, el ratón clickee automáticamente en algún tipo de coordenada. Si podéis facilitarme algún comando, o algún script, os lo agradecería. Estoy iniciándome en los scripts, y todavía no tengo mucho conocimiento.

Gracias de antemano.


Título: Re: Script para dar clicks
Publicado por: tincopasan en 12 Febrero 2017, 01:49 am
la verdad que no puedo ayudarte con bat (Elektro es especialista en eso), pero te recomendaría que si estás empezando te inicies con algo más completo que bat(python,ruby,perl,vbscript,java,etc) en fin, hay muchos lenguajes script que merecen más estudio que lo limitado de bat.


Título: Re: Script para dar clicks
Publicado por: z3nth10n en 20 Febrero 2017, 23:01 pm
Citar
(Elektro es especialista en eso)

Cierto es... ;D

He estado leyendo así por encima, y te recomiendo que crees alguna aplicación de escritorio sencilla con .NET (mi preferencia es C# aunque Elektro te dirá que VB)

El caso es eso, que con scripting es casi imposible por las complicaciones de seguridad que esto conlleva, pero quien sabe quizás haya alguna api en VBScript o algo para hacer dicha tarea (la de establecer el ratón en la posición deseada al hacer click en un botón).

Un saludo.


Título: Re: Script para dar clicks
Publicado por: MDd2 en 20 Febrero 2017, 23:51 pm
Es justo la pregunta que yo he hecho antes de tí  :xD ;-)

Pásate por mi tema que mi compañero Ikillnukes me ha dado una información mas concreta que la que te ha dado a tí.

PD: si consigues hacerlo ponte en contacto conmigo


Título: Re: Script para dar clicks
Publicado por: Eleкtro en 22 Febrero 2017, 05:01 am
Hola.

No existe ningún comando built-in ni comando externo para simular eventos del ratón, ni posicionar el puntero del mouse en unas coordenadas específicas ni hacer click ni nada que se le parezca.

Usa otro lenguaje capacitado para llamar las funciones de Windows SetCursorPos y mouse_event, o en su defecto la manera idonea haciendo uso de las estructuras de RAW_INPUT y la función SendInput. Esto requeriría que aprendieses un lenguaje de programación distinto a Batch y algunas bases de la programación y del manejo de la API de Windows.

Ciertos lenguajes de programación de alto nivel (es decir abstractos) te faclitan al máximo posible este tipo de tareas, como por AutoHotkey, o C# o VB.NET, en el que además de poder optar por implementar/P.Invokear los miembros de la API de Windows RAW_INPUT, también te permite simplificarlo llamando al siguiente método:

Código
  1. Microsoft.VisualStudio.TestTools.UITesting.Click()

( Aunque la serie de ensamblados Microsoft.VisualStudio.TestTools.* cumplen el propósito de servir para desarrollar tests CodedUI para evaluar el comportamiento de las aplicaciones, pero bueno, lo cierto es que te sirve igual como alternativa. )



Si realmente deseas llevar a cabo esta tarea desde Batch, entonces si o sí necesitas recurrir a una herramienta externa que haya sido diseñada para tal propósito o que pueda hacer eso que pides, vaya, como por ejemplo NirCMD de NirSoft:

  • http://www.nirsoft.net/utils/nircmd.html

Ejemplo:
Código
  1. NirCMD.exe setcursor X Y, 0, True
  2. NirCMD.exe sendmouse left click

Saludos!