Autor Tema: C# Simular Clicks aleatorios en zona rectangular, generar clicks automáticamente  (Leído 4536 veces)

XR32Y

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 5
    • Ver Perfil
Hola, soy nuevo en esto de la programación y necesito hacer un programa que de clicks de manera aleatoria o lo más parecido posible dentro de un rectángulo, he estado investigando en muchos lados cosas parecidas pero no encuentro nada  :'( .

 Hasta ahora hice un programa que sólo obtiene coordenadas X, Y y las puede fijar, pero lo que necesito es por ejemplo que desde esos puntos pueda fijar yo una especie de rectángulo para que cada cierto tiempo empieza a dar click en esas zonas.
 
 En la imagen doy un ejemplo, dentro del rectángulo rojo necesito los clicks y lo que llevo actualmente con lo que he estado investigado es el programa que se ve a un lado, que sólo me marca X y Y y las puedo fijar.



Código:
Código: [Seleccionar]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Coordenadas_mouse
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
           
        private void timer1_Tick(object sender, EventArgs e)
        {
            textBox1.Text = Cursor.Position.X.ToString();
            textBox2.Text = Cursor.Position.Y.ToString();

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            button1.Focus();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Start();
            button2.Focus();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            timer1.Stop();
        }
    }
}
« Última modificación: 03 de Julio 2015, 15:20 por César Krall »

XR32Y

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 5
    • Ver Perfil
Re:[AYUDA C#] Clicks aleatorios en zona rectangular.
« Respuesta #1 en: 03 de Julio 2015, 04:59 »
Hola a todos, ya solucioné lo del "rectángulo" de otra forma.

 Lo único que necesito saber es cómo generar los click de manera aleatoria entre esas coordenadas.

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola! Tienes que tener en cuenta el carácter orientado a eventos de C#. Cuando tiene lugar un evento, se ejecuta el código asociado al evento.

También puedes llamar el código asociado a un evento desde código. Por ejemplo:

El código asociado al evento click sobre el objeto SubGraphButton sería este:

Código: [Seleccionar]
    private void SubGraphButton_Click(object sender, RoutedEventArgs args)
    {
//Aquí el código
    }


Ahora tú quieres llamar a ese código desde otro método. Lo invocarías así:
Código: [Seleccionar]
    private void ChildNode_Click(object sender, RoutedEventArgs args)
    {
       SubGraphButton_Click(sender, args);
    }


Esto no te da control sobre la posición de los clicks. Para tener ese control tendrías que usar una aproximación como la de este ejemplo:

Código: [Seleccionar]
//Esto reemplaza a Cursor.Position en WinForms
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern bool SetCursorPos(int x, int y);

[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);

public const int MOUSEEVENTF_LEFTDOWN = 0x02;
public const int MOUSEEVENTF_LEFTUP = 0x04;

//Esto simula un click con el botón izquierdo del ratón
public static void LeftMouseClick(int xpos, int ypos)
{
    SetCursorPos(xpos, ypos);
    mouse_event(MOUSEEVENTF_LEFTDOWN, xpos, ypos, 0, 0);
    mouse_event(MOUSEEVENTF_LEFTUP, xpos, ypos, 0, 0);
}

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".