喵,进入正题。

一、准备工作

我们只需要用到几个参数即可:

1.刷屏的内容

2.每刷一次的时间

3.以Enter方式还是Ctrl+Enter发送

二、开始编码

一开始,我选用了Timer,可是会出现还没有粘贴就发送或者粘贴了许多都没有发送的现象。

于是我就有了个好点子:使用while(true)和await Task.Delay()来控制:

以下代码以C# WPF为示例:

首先需要一只模拟按键的API(WinForm也可以用)

         [DllImport("user32.dll", EntryPoint = "keybd_event", SetLastError = true)]
public static extern void keybd_event(Keys bVk, byte bScan, uint dwFlags, uint dwExtraInfo);

接下来就需要开始使用他啦

 int ont=;
Action a=new Action( async delegate
{
while (true)
{
if (but.Text == "开始")//此处可改为需要停止的条件
break;
System.Windows.Clipboard.SetText(tx.Text);
if (on.IsChecked == true && tw.IsChecked == false)
{//使用Enter方法
keybd_event(Keys.ControlKey, , , );
await Task.Delay();
keybd_event(Keys.V, , , );
await Task.Delay();
keybd_event(Keys.ControlKey, , , );
await Task.Delay();
keybd_event(Keys.Enter, , , );
}
else
{//使用Ctrl+Enter方法
keybd_event(Keys.ControlKey, , , );
await Task.Delay();
keybd_event(Keys.V, , , );
await Task.Delay();
keybd_event(Keys.ControlKey, , , );
await Task.Delay();
keybd_event(Keys.ControlKey, , , );
await Task.Delay();
keybd_event(Keys.Enter, , , );
await Task.Delay();
keybd_event(Keys.ControlKey, , , );
}
ont++;
tit.Text = "已刷屏次数: "+ont;
await Task.Delay(t);
}
});
a();//开始

编码工作完成了,接下来就是测试

三、测试运行

此处可以忽略 um

然后我就被管理员踢了 QAQ

--end

看完啦,如果喜欢那就快点关注我吧

本文章项目源码:https://github.com/TwilightLemon/LemonMG

04-29 03:20