C#实现QQ自动化模拟消息发送,主要模拟鼠标左键点击,键盘模拟输入
第一步,打开visio studio,我这里用的是2015,新建一个winform项目
第二步,工具档托两个textbox控件到窗体,分别把name改成txtX,txtY
第三步,托一个label,把name改成lblPosition
第四步,托一个Timer控件到窗体,并为其生成tick事件,tick事件,用于显示鼠标当前的位置,显示在lblPosition控件上
第五步,托一个Textbox控件,一个Button控件,分别把name改成txtContent,btnSend。双击Button按钮生成点击事件。
简单的界面托完了开始撸代码,双击窗体的空白位置生成窗体加载事件。
窗体加载事件代码如下:
private void Form1_Load(object sender, EventArgs e)
{
this.timer1.Enabled = true;
this.timer1.Interval = 10;//timer控件的执行频率
}
然后写timer中的事件,显示在lblPosition控件上。timer事件代码如下:
private void timer1_Tick(object sender, EventArgs e)
{
this.lblPosition.Text = $"x:{Cursor.Position.X},y:{Cursor.Position.Y}";
}
先调试起来,看下效果
接着定义一个,鼠标定位到指定焦点的动作。代码如下:
[DllImport("user32.dll")]
private static extern int SetCursorPos(int x, int y);
代码全部如下,下一篇写,键盘模拟输入,鼠标模拟点击。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Automate.QQ
{
public partial class Form1 : Form
{
[DllImport("user32.dll")]
private static extern int SetCursorPos(int x, int y);
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
this.lblPosition.Text = $"x:{Cursor.Position.X},y:{Cursor.Position.Y}";
}
private void btnSend_Click(object sender, EventArgs e)
{
SetCursorPos(Convert.ToInt32(txtX.Text), Convert.ToInt32(txtY.Text));
}
private void Form1_Load(object sender, EventArgs e)
{
this.timer1.Enabled = true;
this.timer1.Interval = 10;//timer控件的执行频率
}
}
}