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

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

成品展示

环境准备

VS2019

新建项目

打开界面绘制

打开工具箱开始放置按钮标签以及文本框

最后设计完成的效果

这里需要注意的是这里的每个按钮、文本框等空间都一一对应一个名字

程序思路

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

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

程序部分

双击控件跳转到控件对应的槽函数,这里我们只需要写开始和暂停按钮的函数即可。(一定要做好注释方便别人也方便自己)

在设计页面添加定时器控件,然后双击控件进入槽函数

设置剪切板内容为编辑框输入的内容

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

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

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;                                                       // 发送次数清零
            }
        }
    }
}

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

目录
打赏
0
0
0
0
8
分享
相关文章
Baumer工业相机堡盟工业相机如何通过NEOAPISDK设置软件触发模式(C#)
Baumer工业相机堡盟工业相机如何通过NEOAPISDK设置软件触发模式(C#)
121 1
解析公司屏幕监控软件中 C# 字典算法的数据管理效能与优化策略
数字化办公的时代背景下,企业为维护信息安全并提升管理效能,公司屏幕监控软件的应用日益普及。此软件犹如企业网络的 “数字卫士”,持续记录员工电脑屏幕的操作动态。然而,伴随数据量的持续增长,如何高效管理这些监控数据成为关键议题。C# 中的字典(Dictionary)数据结构,以其独特的键值对存储模式和高效的操作性能,为公司屏幕监控软件的数据管理提供了有力支持。下文将深入探究其原理与应用。
61 4
员工上网行为监控软件中基于滑动窗口的C#流量统计算法解析​
在数字化办公环境中,员工上网行为监控软件需要高效处理海量网络请求数据,同时实时识别异常行为(如高频访问非工作网站)。传统的时间序列统计方法因计算复杂度过高,难以满足低延迟需求。本文将介绍一种基于滑动窗口的C#统计算法,通过动态时间窗口管理,实现高效的行为模式分析与流量计数。
78 2
基于 C# 深度优先搜索算法的局域网集中管理软件技术剖析
现代化办公环境中,局域网集中管理软件是保障企业网络高效运行、实现资源合理分配以及强化信息安全管控的核心工具。此类软件需应对复杂的网络拓扑结构、海量的设备信息及多样化的用户操作,而数据结构与算法正是支撑其强大功能的基石。本文将深入剖析深度优先搜索(Depth-First Search,DFS)算法,并结合 C# 语言特性,详细阐述其在局域网集中管理软件中的应用与实现。
86 3
开源项目推荐:SCADA组态软件Qt,kanzi,C#,MFC和WEB大全(收藏版)
开源项目推荐:SCADA组态软件Qt,kanzi,C#,MFC和WEB大全(收藏版)
5449 0
局域网行为监控软件 C# 多线程数据包捕获算法:基于 KMP 模式匹配的内容分析优化方案探索
本文探讨了一种结合KMP算法的多线程数据包捕获与分析方案,用于局域网行为监控。通过C#实现,该系统可高效检测敏感内容、管理URL访问、分析协议及审计日志。实验表明,相较于传统算法,KMP在处理大规模网络流量时效率显著提升。未来可在算法优化、多模式匹配及机器学习等领域进一步研究。
48 0
基于 C# 的内网行为管理软件入侵检测算法解析
当下数字化办公环境中,内网行为管理软件已成为企业维护网络安全、提高办公效率的关键工具。它宛如一位恪尽职守的网络守护者,持续监控内网中的各类活动,以确保数据安全及网络稳定。在其诸多功能实现的背后,先进的数据结构与算法发挥着至关重要的作用。本文将深入探究一种应用于内网行为管理软件的 C# 算法 —— 基于二叉搜索树的入侵检测算法,并借助具体代码例程予以解析。
77 4
|
9月前
|
【C#】在winform中如何实现嵌入第三方软件窗体
【C#】在winform中如何实现嵌入第三方软件窗体
482 0
C#开源的一个能利用Windows通知栏背单词的软件 - ToastFish
C#开源的一个能利用Windows通知栏背单词的软件 - ToastFish
237 0
45【软件技术基础】C#调用NPOI插件对EXCEL进行处理
NPOI插件进行EXCEL表格处理,不依赖第三方软件,功能强大,使用简便。 C#调用NPOI插件进行EXCEL单个表和文件夹中批量表的处理。
284 1
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问