喵,进入正题。
一、准备工作
我们只需要用到几个参数即可:
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