Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: s_azazel en 3 Junio 2014, 18:10 pm



Título: Arraste de raton en aplicacion externa
Publicado por: s_azazel en 3 Junio 2014, 18:10 pm
Buenas tardesss estoy intentando mediante el api mouse_event conseguir que me haga un "arrastre el raton en una ventan fuera de mi aplicacion.

Activo bien la otra ventana y consigo hacer clicks pero no veo la forma de hacer un arraste automatico de una coordenada a otra

Muchas gracias!!!


Título: Re: Arraste de raton en aplicacion externa
Publicado por: El Benjo en 4 Junio 2014, 21:16 pm
Con el mouse_event() lo haces en dos pasos.

Primero presionas sobre la ventana y después sueltas en la posición que desees.

Código
  1. mouse_event(ENUM_MouseEventFlags.LEFTDOWN, PosX, PosY, 0, UIntPtr.Zero)
  2. mouse_event(ENUM_MouseEventFlags.LEFTUP, NuevaPosX, NuevaPosY, 0, UIntPtr.Zero)

Si observas que la ventana no se mueve o hay un comportamiento inesperado en esta función, puedes colocar un retraso entre ambas llamadas.

Código
  1. mouse_event(ENUM_MouseEventFlags.LEFTDOWN, PosX, PosY, 0, UIntPtr.Zero)
  2. thread.sleep(1000)
  3. mouse_event(ENUM_MouseEventFlags.LEFTUP, NuevaPosX, NuevaPosY, 0, UIntPtr.Zero)


Título: Re: Arraste de raton en aplicacion externa
Publicado por: s_azazel en 7 Junio 2014, 15:05 pm
Muchas gracias!!!!!


Título: Re: Arraste de raton en aplicacion externa
Publicado por: Eleкtro en 28 Junio 2014, 04:11 am
La función Mouse_Event se ha quedado ""anticuada"" y ha sido "sustituida" por la función SendInput, te sugiero integrar la utilización de dicha función en tu aplicación.

Te dejo un regalito para ti y para todos por parte de un servidor por si te sirve de ayuda:
=> http://pastebin.com/9wGBM5nM

Ejemplo de uso:

Citar
Código
  1. SendInputs.MouseClick(SendInputs.MouseButton.RightPress)
  2. SendInputs.MouseMove(X:=5, Y:=-5)
  3. SendInputs.MouseMove(Offset:=New Point With {.X = 5, .Y = -5})
  4. SendInputs.MousePosition(Position:=New Point With {.X = 100, .Y = -500})

Saludos


Título: Re: Arraste de raton en aplicacion externa
Publicado por: El Benjo en 28 Junio 2014, 06:45 am
Elektro, pues por favor poner en qué parte dice que la función "mouse_event()" de la API de Windows se ha quedado obsoleta.

Tengo entendido que sustituir significa poner una cosa en lugar de otra. ¿Significa que ahora Windows utiliza la función que tú escribiste es vez de la ya mencionada API? ?O sea que todas las aplicaciones que usan "mouse_event()" ya no serán compatibles? ¿No estás infringiendo acuerdos al publicar el código de la función que programaste para ellos?

Otra cosa que me intriga es... ¿Estoy siendo demasiado sarcástico? XD

No, ya en serio, eres buen programador y no hay necesidad de que hagas eso, no deberías llegar diciendo ese tipo de cosas que pueden confundir a los nuevos. Yo casi me la trago de que había una función "sendinputs()" en el nuevo framework. XD

Saludos, Elektro.


Título: Re: Arraste de raton en aplicacion externa
Publicado por: Eleкtro en 28 Junio 2014, 06:56 am
en qué parte dice que la función "mouse_event()" de la API de Windows se ha quedado obsoleta.

-> mouse_event function (Windows) - MSDN - Microsoft (http://msdn.microsoft.com/en-us/library/windows/desktop/ms646260%28v=vs.85%29.aspx)

Citar
Note: This function has been superseded.
Use SendInput instead
.

Por si no ha quedado claro lo que pone en Inglés, una traducción:
Citar
Nota: Esta función se ha sustituido.
Utilice SendInput en su lugar
.

En ningún momento he dicho más haya de la realidad, no he dicho que no sea compatible, ni nada, el sarcasmo sobra...

Saludos.


Título: Re: Arraste de raton en aplicacion externa
Publicado por: El Benjo en 28 Junio 2014, 07:02 am
Ah, ya sé qué pasó, es que agregaste la "s" al final, pensé que te referías a tu función y no a la del framework. XD

Sorry, my mistake. :P


Título: Re: Arraste de raton en aplicacion externa
Publicado por: Eleкtro en 28 Junio 2014, 07:06 am
vale, y yo no entendia tu último comentario donde insinuabas que me burlaba de los nuevos y que estaba mintiendo sobre la existencia de dicha función, no sabía si también era sarcasmo... pero ahora al haber explicado el malentendido creo que entiendo porque lo dijiste.

PD: Le puse la "s" sin querer (costumbre) xD.

Aquí no ha pasado nada,
Saludos.