SendKeys与Windows窗体应用程序按钮发生冲突

时间:2013-10-21 13:49:58

标签: c# windows forms sendkeys

我最近制作了这个小型Windows窗体应用程序:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace Spammer
{
    public partial class Form1 : Form
    {
        Thread t1;
        int delay, y = 1;
        public Form1()
        {
            t1 = new Thread(send);
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            delay = int.Parse(textBox2.Text);
            t1.Start();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            y = 0;
        }
        private void send()
        {
            while (y == 1)
            {
                String textt = textBox1.Text;
                Thread.Sleep(delay);
                SendKeys.SendWait(textt);
            }
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }
    }
}

现在,它看起来像这样:

它有一个延迟文本框,一个文本发送文本框和两个按钮:开始和停止。

现在,我已尝试运行它并将延迟设置为1000毫秒。

当我按下“停止”按钮时,它会完全停止,不再发送任何消息。

但是当我在延迟输入非常小的延迟(例如100ms)时,按“停止”不会做任何事情。 它甚至很难点击它,即使我点击它也不会停止发送消息。

这是为什么?我能以某种方式解决它吗?

1 个答案:

答案 0 :(得分:0)

好的,谢谢大家的帮助!

我现在正在使用GUI计时器,它可以完美运行。