这是不可能完成的任务,.NET平台不存在开发驱动的能力,你要想在驱动层对键盘操作,最好使用C,C++来实现,比较方便。 像现在一些比较出名的网络游戏,都是在驱动层进行保护的。
成都创新互联专业为企业提供兴县网站建设、兴县做网站、兴县网站设计、兴县网站制作等企业网站建设、网页设计与制作、兴县企业网站模板建站服务,10年兴县做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
一、模拟键盘操作
以下示例程序当点击button1按钮,模拟键盘在文本框textBox1中作输入操作,详细说明请参看MSDN帮助中的SendKeys类。
//事件完整代码
private void button1_Click(object sender, System.EventArgs e)
{
this.textBox1.Focus(); //先必须让文本框得到焦点,因为焦点在button1上
SendKeys.Send("^a"); //Ctrl+A
SendKeys.Send("{DEL}"); //Delete
SendKeys.Send("+(ec)"); //Shift+"ec"
SendKeys.Send("{ENTER}"); //Enter
SendKeys.Send("+ec"); //Shift+'e'+'c'
SendKeys.Send("{ENTER}"); //Enter
SendKeys.Send("{h 10}"); //"hhhhhhhhhh"
SendKeys.Send("{ENTER}"); //Enter
SendKeys.Send("^%{DEL}"); //Alt+Ctrl+Del
}
二、模拟鼠标操作
以下示例程序当点击DBButton按钮,模拟鼠标双击窗体事件,并将鼠标向左上方移动10*10象素,其它操作类似。
//引入名字空间
using System.Runtime.InteropServices
//申明
[DllImport("user32")]
private static extern int mouse_event(int dwFlags,int dx,int dy, int cButtons, int dwExtraInfo);
const int MOUSEEVENTF_MOVE = 0x0001;
const int MOUSEEVENTF_LEFTDOWN = 0x0002;
const int MOUSEEVENTF_LEFTUP = 0x0004;
const int MOUSEEVENTF_RIGHTDOWN = 0x0008;
const int MOUSEEVENTF_RIGHTUP = 0x0010;
const int MOUSEEVENTF_MIDDLEDOWN = 0x0020;
const int MOUSEEVENTF_MIDDLEUP = 0x0040;
const int MOUSEEVENTF_ABSOLUTE = 0x8000;
//事件完整代码
private void Form_DoubleClick(object sender, System.EventArgs e)
{
MessageBox.Show("你双击了屏幕");
}
private void DBButton_Click(object sender, System.EventArgs e)
{
mouse_event(MOUSEEVENTF_MOVE,-10,-10,0,0); //移动鼠标,否则事件发生在按钮上
Down,Up合为一次单击事件
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
}
Public Class Form2
Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
AddHandler Label1.MouseEnter, AddressOf LabelMouseEnter
AddHandler Label2.MouseEnter, AddressOf LabelMouseEnter
AddHandler Label1.MouseLeave, AddressOf LabelMouseLeave
AddHandler Label2.MouseLeave, AddressOf LabelMouseLeave
AddHandler Label1.MouseDown, AddressOf LabelMouseDown
AddHandler Label2.MouseDown, AddressOf LabelMouseDown
End Sub
Private Sub LabelMouseEnter(ByVal sender As Object, ByVal e As System.EventArgs)
Dim c As Label = DirectCast(sender, Label)
c.BackColor = Color.DodgerBlue
End Sub
Private Sub LabelMouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Dim c As Label = DirectCast(sender, Label)
Form1.TextBox1.Text = c.Text
End Sub
Private Sub LabelMouseLeave(ByVal sender As Object, ByVal e As System.EventArgs)
Dim c As Label = DirectCast(sender, Label)
c.BackColor = SystemColors.Control
End Sub
End Class
游戏里用keybd_event一般都是无效的,游戏防御强
如果阁下不想用按键精灵,非要用vb,那也行,在vb里用插件,也方便
我有插件,不管什么游戏都能做操作,自动点击,喊话这些,都不是事儿
.net框架就是对API就行封装,做成一个个的类然后可以让你轻松调用,但是。net封装的内容,是常用的内容,有些东西用的时候,还是需要调用API函数,自己写,毕竟,微软不知道你要用什么函数,所以尽可能的满足用户大众口味而已。如果你需要用的比较复杂,还是调用API自己写类吧。
希望我的回答对您有所帮助