Título: Mover cursor con visual basic Publicado por: daviddavo en 4 Abril 2015, 03:23 am Hola, no tengo ni idea de Visual Basic, pero estoy haciendo un script. Y necesito hacer que el cursor se mueva 100 px hacia abajo (-100x) y 100 pixeles hacia la derecha (+100y)
¿Sabeis como podría hacer esto? Gracias de antemano Título: Re: Mover cursor con visual basic Publicado por: Br1ant en 4 Abril 2015, 05:39 am Con:
Código
Saludines. Título: Re: Mover cursor con visual basic Publicado por: Eleкtro en 4 Abril 2015, 15:50 pm Estamos en la sección Scripting, ¿te refieres a VBS, VBA, VB, o VB.Net?, acláralo.
El código que te han mostrado es para VisualBasic.Net En caso de referirte a VBS (VisualBasicScript) no es posible realizar esa tarea, para ello necesitarías llamar a la API de Windows y solo puedes hacerlo mediante librerías de terceros que añaden soporte adicional a VBS, una alternativa sería utilizar la aplicación RunDll32 desde VBS, pero solo funcionaría con funciones que tuviesen una firma específica, no es el caso de la función SetCursorPos. Saludos Título: Re: Mover cursor con visual basic Publicado por: daviddavo en 6 Abril 2015, 09:37 am Estamos en la sección Scripting, ¿te refieres a VBS, VBA, VB, o VB.Net?, acláralo. El código que te han mostrado es para VisualBasic.Net En caso de referirte a VBS (VisualBasicScript) no es posible realizar esa tarea, para ello necesitarías llamar a la API de Windows y solo puedes hacerlo mediante librerías de terceros que añaden soporte adicional a VBS, una alternativa sería utilizar la aplicación RunDll32 desde VBS, pero solo funcionaría con funciones que tuviesen una firma específica, no es el caso de la función SetCursorPos. Saludos Me refiero a vbs, perdón por no haberlo aclarado Título: Re: Mover cursor con visual basic Publicado por: daviddavo en 6 Abril 2015, 09:42 am Con: Código
Saludines. Ya, pero me refiero de forma relativa. Que lo meuva 50 pixeles abajo y 50 pixeles hacia la derecha Título: Re: Mover cursor con visual basic Publicado por: Br1ant en 6 Abril 2015, 11:28 am Bueno, ya te lo dijo Elektro.
Citar En caso de referirte a VBS (VisualBasicScript) no es posible realizar esa tarea, para ello necesitarías llamar a la API de Windows y solo puedes hacerlo mediante librerías de terceros que añaden soporte adicional a VBS, una alternativa sería utilizar la aplicación RunDll32 desde VBS, pero solo funcionaría con funciones que tuviesen una firma específica, no es el caso de la función SetCursorPos. Pero igual te dejo un código que usé hace años... Código
No veo una etiqueta para VBS, Lol. La verdad que no me acuerdo mucho de esto, sólo experimenté con SetCursorPos un par de veces. Puede que me equivoque. Edito. Para usar la función necesitas importar la DLL, no sé como será en VBS. En VB.NET sería: Código
¡Saludines! Título: Re: Mover cursor con visual basic Publicado por: Eleкtro en 6 Abril 2015, 17:21 pm Buenas
Cómo ya expliqué, por mucho que pueda costar de "creer", VBS es un lenguaje simple e inutil, no hay modo alguno de importar una función de la WinAPI en VBS, no sin componentes COM de terceros que añadan soporte adicional para esa característica, cómo por ejemplo WSHDynaCall. Cómo también expliqué, no se puede utilizar la función 'SetCursorPos' desde la aplicación RunDll32.exe, ya que dicha función tiene dos parámetros (x, y) que no concuerdan con la firma necesaria que debe tener una función compatible con la interfáz RunDll32: INFO: Windows Rundll and Rundll32 Interface (http://support.microsoft.com/en-us/kb/164787) Por ende, al intentar llamar la función 'SetCursorPos' desde RunDll32, los valores que se pasan a los parámetros (x, y) serán valores aleatorios, igual que sucede por ejemplo con la función 'SwapMouseButton' donde el valor que se le pasa siempre será positivo ...por mucho que le pases un "0" para revertir el cambio. La solución más eficiente en estas circunstancias sería utilizar un lenguaje capacitado para dicha tarea, una solución muy sencilla sería utilizando VB.Net/C# siguiendo el primer ejemplo mostrado por @bubble1 ya que ni siquiera necesitas importar la WinAPI para posicionar el mouse. Saludos! |