• Viernes 3 de Mayo de 2024, 04:55

Autor Tema:  Click automático  (Leído 3460 veces)

Homer

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Click automático
« en: Viernes 19 de Noviembre de 2010, 19:07 »
0
Buenas,
soy un principiante de C#. He estado revisando varios foros en busca de ayuda pero no he encontrado nada relacionado con lo que ahora mismo me ocupa y aunque en este tampoco lo he encontrado, me ha parecido el más completo y... aquí estoy.

Ahora mismo intento crear... "algo"... una especie de utilidad, la cual, entre otras cosas, debe de poder hacer click de forma automática en un punto determinado de la pantalla, es decir, donde se le pase por parámetros, pero no en ningún botón ni text box ni nada similiar, simplemente en un punto de la pantalla, dando igual lo que se encuentre ahí.

El caso, es que como ya he dicho, estoy un pocomuchobastante pez y si bien he conseguido, no sin sudor, que el cursor se sitúe en dicho punto de la pantalla, no soy capaz de coseguir el click del ratón.

He estado mirando la ayuda de Microsoft... y algunas que otras soluciones a temas similares en foros pero no he conseguido hacer que lo mío funcione... me pierdo bastante con los mouseeventargs, mouseeventhandler, onmouseclic, onclick... la verdad es que he probado bastante variantes.

Supongo que al final será una chorrada de tres líneas como mucho, si es que no hay ya un evento que lo haga solo, que tambien podría ser y no haberlo visto, pero mis conocimientos son bastante limitados (aunque los intento ampliar), de modo que cualquier tipo de ayuda o indicación del camino a seguir sería bien recibida.

Un saludo y gracias de antemano.

Altrox

  • Nuevo Miembro
  • *
  • Mensajes: 17
  • Nacionalidad: es
    • Ver Perfil
Re: Click automático
« Respuesta #1 en: Viernes 19 de Noviembre de 2010, 22:24 »
0
Hola buenas, puedes mirar esto.

Para "hacer" un click de ratón hay que llamar a una libreria nativa de windows.
Llamar a la funcion de evento de ratón de la libreria.

Puedes hacer esto:

//EDITADO//

Se me olvidaba, para que te reconozca DllImport hay que añadir
using System.Runtime.InteropServices;

//FIN EDITADO//
Código: C#
  1.  
  2. [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
  3.         public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);
  4.  
  5. private const int MOUSEEVENTF_IZQDOWN = 0x02; // Botón ratón izquierdo presionado
  6. private const int MOUSEEVENTF_IZQTUP = 0x04; // Botón ratón izquierdo soltado
  7. private const int MOUSEEVENTF_DERDOWN = 0x08; // Botón ratón derecho presionado
  8. private const int MOUSEEVENTF_DERUP = 0x10; // Botón ratón derecho soltado
  9.  
  10. private void ejemploClick(int x, int y) // x e y coorenadas dónde se desea el ckick
  11. {
  12.        int l = 0;
  13.        bool salir = false;
  14.        while(!salir)
  15.        {
  16.                if(l == 0)
  17.                {
  18.                         mouse_event(MOUSEEVENTF_IZQDOWN, x, y, 0, 0);
  19.                         l = 1;
  20.                }
  21.                else
  22.                {
  23.                         mouse_event(MOUSEEVENTF_IZQUP, x, y, 0, 0);
  24.                         salir = true;
  25.                }
  26.         }
  27. }
  28.  
  29.  
Bueno creo que así puedes simular un click de ratón no lo he probado, pero la función mose_event si la he usado.

Todavía estoy verde en esto de C# así que, si hay alguien que ve algo mal u otro modo más eficiente de hacerlo que lo publique.

Salud!

Homer

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Click automático
« Respuesta #2 en: Sábado 20 de Noviembre de 2010, 12:52 »
0
Desde ya, muchísimas gracias.

Todavía no lo he probado, pero veo que es mucho más complejo de lo que me esperaba.

La verdad es que tambien había intentado hacer algo con mouse_event, pero ahora mismo acabo de comprobar que estaba a años luz de algo decente.

Lo más probable es que lo pruebe el lunes a la mañana, ya que así lo podré mirar con más detenimiento, y ya te diré como va, no obstante, como ya te he dicho, muchas gracias por tu esfuerzo.

Un saludo.

ConHacerloUnaVezBasta

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re:Click automático
« Respuesta #3 en: Martes 26 de Julio de 2011, 07:08 »
0


Lo Probe Y Anda... Interesanta Gracias!!   :bravo: