Arraste de raton en aplicacion externa

Iniciado por s_azazel, 3 Junio 2014, 18:10 PM

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

s_azazel

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!!!

El Benjo

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 (vbnet) [Seleccionar]
mouse_event(ENUM_MouseEventFlags.LEFTDOWN, PosX, PosY, 0, UIntPtr.Zero)
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 (vbnet) [Seleccionar]
mouse_event(ENUM_MouseEventFlags.LEFTDOWN, PosX, PosY, 0, UIntPtr.Zero)
thread.sleep(1000)
mouse_event(ENUM_MouseEventFlags.LEFTUP, NuevaPosX, NuevaPosY, 0, UIntPtr.Zero)
www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.

s_azazel


Eleкtro

#3
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 (vbnet) [Seleccionar]
SendInputs.MouseClick(SendInputs.MouseButton.RightPress)
SendInputs.MouseMove(X:=5, Y:=-5)
SendInputs.MouseMove(Offset:=New Point With {.X = 5, .Y = -5})
SendInputs.MousePosition(Position:=New Point With {.X = 100, .Y = -500})

Saludos








El Benjo

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.
www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.

Eleкtro

#5
Cita de: El Benjo en 28 Junio 2014, 06:45 AMen qué parte dice que la función "mouse_event()" de la API de Windows se ha quedado obsoleta.

-> mouse_event function (Windows) - MSDN - Microsoft

CitarNote: This function has been superseded.
Use SendInput instead
.

Por si no ha quedado claro lo que pone en Inglés, una traducción:
CitarNota: 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.








El Benjo

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
www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.

Eleкtro

#7
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.