手把手教你用C#写一个刷屏软件

134 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

成品展示

在这里插入图片描述

环境准备

VS2019

新建项目

在这里插入图片描述 在这里插入图片描述打开界面绘制 在这里插入图片描述打开工具箱开始放置按钮标签以及文本框 在这里插入图片描述最后设计完成的效果 在这里插入图片描述 这里需要注意的是这里的每个按钮、文本框等空间都一一对应一个名字 在这里插入图片描述

程序思路

点击开始,把发送框的内容复制到剪切板中,然后点击需要刷屏的对象框然后定时的模拟按键CTRL + V + ENTER实现粘贴和发送操作。

设计的操作:点击开始按钮,设定定时器执行间隔时间,获取输入框内容添加到剪切板,开启定时器,开始执行官定时器执行函数:模拟键盘按下,判断发送次数,点击关闭按钮,定时器关闭。

程序部分

双击控件跳转到控件对应的槽函数,这里我们只需要写开始和暂停按钮的函数即可。(一定要做好注释方便别人也方便自己) 在这里插入图片描述在设计页面添加定时器控件,然后双击控件进入槽函数 在这里插入图片描述设置剪切板内容为编辑框输入的内容

 Clipboard.SetText(putsStr.Text);            // 复制要发送的内容到剪切板

设定定时器间隔执行时间:这里获取的是编辑框的间隔时间毫秒为单位

putsTimer.Interval = int.Parse(putsTime.Text);    // 设定定时器时间间隔
putsTimer.Enabled = true;                         // 打开定时器
putsTimer.Start();                                // 定时器开始工作

模拟键盘按下的函数:SendKeys是一个非常好用的函数下面分享一个适合收藏的表格

SendKeys.Send("^{V}");	//模拟ctrl+v
SendKeys.Send("{ENTER}");//模拟enter

在这里插入图片描述关闭定时器

putsTimer.Enabled = false;                       //关闭定时器
putsTimer.Stop();                                //定时器停止工作

这里我单独写了一个函数用于控制两个按钮的可用控制以及颜色区分

 // 按钮可用控制
private void btnEnabled(bool btn1, bool btn2)
{
	if (btn1)
	{
		btnStart.Enabled = true;				//设定按钮可用状态
		btnStart.BackColor = Color.Green;       //设置按钮颜色
	}
	else
	{
		btnStart.Enabled = false;
		btnStart.BackColor = Color.Red;
	}
	if (btn2)
	{
		btnStop.Enabled = true;
		btnStop.BackColor = Color.Green;
	}
	else
	{
		btnStop.Enabled = false;
		btnStop.BackColor = Color.Red;
	}
}

设置图标以及标题 在这里插入图片描述在这里插入图片描述在这里插入图片描述

完整代码

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;

namespace 
{
    public partial class Form1 : Form
    {
        int Num = 0;                                                  // 发送次数控制
        public Form1()
        {
            InitializeComponent();
            // 初始化按钮状态颜色
            btnStart.BackColor = Color.Green;
            btnStop.BackColor = Color.Red;
        }
        // 按钮可用控制
        private void btnEnabled(bool btn1, bool btn2)
        {
            if (btn1)
            {
                btnStart.Enabled = true;
                btnStart.BackColor = Color.Green;       //设置按钮颜色
            }
            else
            {
                btnStart.Enabled = false;
                btnStart.BackColor = Color.Red;
            }
            if (btn2)
            {
                btnStop.Enabled = true;
                btnStop.BackColor = Color.Green;
            }
            else
            {
                btnStop.Enabled = false;
                btnStop.BackColor = Color.Red;
            }
        }
        //  开始按钮
        private void btnStart_Click(object sender, EventArgs e)
        {
            Clipboard.SetText(putsStr.Text);                          // 复制要发送的内容到剪切板
            System.Threading.Thread.Sleep(2500);               // 延时2500毫秒用于鼠标指向聊天框
            putsTimer.Interval = int.Parse(putsTime.Text);    // 设定定时器时间间隔
            putsTimer.Enabled = true;                                   // 打开定时器
            putsTimer.Start();                                                 // 定时器开始工作
            btnEnabled(false, true);                                       // 打开按钮2关闭按钮1
        }
        // 暂停按钮
        private void btnStop_Click(object sender, EventArgs e)
        {
            putsTimer.Enabled = false;                                //关闭定时器
            putsTimer.Stop();                                               //定时器停止工作
            btnEnabled(true, false);                                     // 打开按钮1关闭按钮2
            MessageBox.Show("发送了" + Num + "次");     // 提示
        }
        // 定时器执行函数
        private void putsTimer_Tick(object sender, EventArgs e)
        {
            Num++;                                                             //发送次数
            SendKeys.Send("^{V}");
            SendKeys.Send("{ENTER}");
            if( Num == int.Parse(putsNum.Text))
            {
                putsTimer.Enabled = false;                            //关闭定时器
                putsTimer.Stop();                                           //定时器停止工作
                btnEnabled(true, false);                                 // 打开按钮1关闭按钮2
                Num = 0;                                                       // 发送次数清零
            }
        }
    }
}

如果需要项目的完整工程可以私聊博主噢