C#中实现模拟鼠标事件
2012-01-02 20:35
459 查看
注 :这段代码是有点问题,当时调试没注意。
其实主要是展示一下
[DllImport("user32.dll")]
static extern void mouse_event(MouseEventFlag flags, int dx, int dy, uint data, UIntPtr extraInfo);
的用法,在这段代码中由于button1一直有焦点MainForm_KeyDown运行不了。然而我用了别的方法触发mouse_event结果没执行button1的点击事件。这个我再研究下。
鼠标自动运行事件在程序中也会用到的。它的原理是调用user32.dll的方法运行。
下面的代码是鼠标自动点击事件的一个例子。
新建一个c#窗体工程,在窗口上拖入一个button,注册button的鼠标点击事件。如下:
添加一个类,用来调用user32.dll的mouse_event方法:
测试如下:
在窗体中加一个KeyDown事件,并调用自动点击的方法。
运行后,窗口有焦点的情况下按键盘的键,会触发button的click事件,如图:
你还可能感兴趣:c#界面鼠标拖动 控件在父窗体或屏幕中的绝对坐标
其实主要是展示一下
[DllImport("user32.dll")]
static extern void mouse_event(MouseEventFlag flags, int dx, int dy, uint data, UIntPtr extraInfo);
的用法,在这段代码中由于button1一直有焦点MainForm_KeyDown运行不了。然而我用了别的方法触发mouse_event结果没执行button1的点击事件。这个我再研究下。
鼠标自动运行事件在程序中也会用到的。它的原理是调用user32.dll的方法运行。
下面的代码是鼠标自动点击事件的一个例子。
新建一个c#窗体工程,在窗口上拖入一个button,注册button的鼠标点击事件。如下:
public partial class MainForm : Form { public MainForm() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { MessageBox.Show("Button1点击事件!"); } }
添加一个类,用来调用user32.dll的mouse_event方法:
public class MouseFlag { [DllImport("user32.dll")] static extern void mouse_event(MouseEventFlag flags, int dx, int dy, uint data, UIntPtr extraInfo); [Flags] enum MouseEventFlag : uint { Move = 0x0001, LeftDown = 0x0002, LeftUp = 0x0004, RightDown = 0x0008, RightUp = 0x0010, MiddleDown = 0x0020, MiddleUp = 0x0040, XDown = 0x0080, XUp = 0x0100, Wheel = 0x0800, VirtualDesk = 0x4000, Absolute = 0x8000 } public static void MouseLefDownEvent(int dx, int dy, uint data) { mouse_event(MouseEventFlag.LeftDown,dx, dy, data, UIntPtr.Zero); } }
测试如下:
在窗体中加一个KeyDown事件,并调用自动点击的方法。
public partial class MainForm : Form { public MainForm() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { MessageBox.Show("Button1点击事件!"); } private void MainForm_KeyDown(object sender, KeyEventArgs e) { MouseFlag.MouseLefDownEvent(this.button1.Location.X, this.button1.Location.Y,0); } }
运行后,窗口有焦点的情况下按键盘的键,会触发button的click事件,如图:
你还可能感兴趣:c#界面鼠标拖动 控件在父窗体或屏幕中的绝对坐标
相关文章推荐
- C#中实现模拟鼠标事件
- C#中实现模拟鼠标事件
- C#中实现模拟鼠标事件
- C# 模拟鼠标点击事件
- pyobjc实现鼠标事件模拟(Mac)
- 老土但有效的刷百度空间人气不被封的方法(C#实现操纵鼠标事件,单击、移动、滚轮)
- 用C#程序实现键盘和鼠标的模拟
- Android自动化测试初探(五): 再述模拟键盘鼠标事件(adb shell 实现)
- Android自动化测试初探(五): 再述模拟键盘鼠标事件(adb shell 实现)
- 安卓TV开发(九) Android模拟事件并实现遥控器模拟鼠标操作
- [置顶] 模拟鼠标事件的实现思路及代码
- Android 模拟键盘鼠标事件(Socket+Instrumentation实现)
- JavaScript中通过鼠标事件实现模拟拖放效果
- Android自动化测试初探(四): 模拟键盘鼠标事件(Socket+Instrumentation实现)
- 用C#程序实现键盘和鼠标的模拟
- Android查询:模拟键盘鼠标事件(adb shell 实现)
- C#模拟键盘鼠标事件 SendKeys 的特殊键代码表
- 模拟鼠标事件的实现思路及代码
- C#实现可捕获几乎所有键盘鼠标事件的钩子类完整实例
- C# 模拟鼠标.模拟键盘事件