有么有大神用WinIo写过C#的鼠标点击啊。求指导 想用c# 写个游戏脚本,普通的鼠标点击被游戏屏蔽了,网上查到用Winio来做,但是网上给的例子都是键盘输入的,鼠标输入的都不能用,求大神指点一二。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 mouse_event可以实现//设置鼠标按键和动作 [DllImport("user32.dll")] static extern void mouse_event(MouseEventFlag flags, int dx, int dy,uint data, UIntPtr extraInfo); //UIntPtr指针多句柄类型 //将枚举作为位域处理 [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 } /// <summary> /// 屏幕宽 /// </summary> private int px = Screen.PrimaryScreen.Bounds.Width; /// <summary> /// 屏幕高 /// </summary> private int py = Screen.PrimaryScreen.Bounds.Height;获取当前鼠标X,Y坐标int x = MousePosition.X; int y= MousePosition.Y;移动示例mouse_event(MouseEventFlag.Move | MouseEventFlag.Absolute,x *65536 / px, y* 65536 / py, 0, UIntPtr.Zero);当前位置左单击示例mouse_event(MouseEventFlag.LeftUp | MouseEventFlag.LeftDown, 0,0,0, UIntPtr.Zero); Winio一样被屏蔽 public static void MyMouseDown(VKKey vKeyCoad) { int btScancode = 0; btScancode = MapVirtualKey((byte)vKeyCoad, 0); KBCWait4IBE(); // 'wait for buffer gets empty SetPortVal(KBC_KEY_CMD, (IntPtr)0xD3, 1);// 'send write command KBCWait4IBE(); SetPortVal(KBC_KEY_DATA, (IntPtr)(btScancode | 0x80), 1);// 'write in io } /// Simulate mouse up public static void MyMouseUp(VKKey vKeyCoad) { int btScancode = 0; btScancode = MapVirtualKey((byte)vKeyCoad, 0); KBCWait4IBE(); // 'wait for buffer gets empty SetPortVal(KBC_KEY_CMD, (IntPtr)0xD3, 1); //'send write command KBCWait4IBE(); SetPortVal(KBC_KEY_DATA, (IntPtr)(btScancode | 0x80), 1);// 'write in io } 一条语句过长分行显示,分行中间需要加什么转移符号,C#,急 请教一个数据结构的简单问题。 帮个忙吧!!PictureBox 水晶报表分组汇总 字符处理问题 快来抢分:在水晶报表中设置0.00% 这类格式要如何做? windows应用程序中,treeview与数据库,请给个思路!我只剩30分了,真的 从0开始,第四问? 如何读写forpro表? c#中如何实现MFC中的UpdateData函数啊???? C#实现放大镜功能 求助:C# textBox 与 SQL 联想输入问题
//设置鼠标按键和动作
[DllImport("user32.dll")]
static extern void mouse_event(MouseEventFlag flags, int dx, int dy,uint data, UIntPtr extraInfo); //UIntPtr指针多句柄类型
//将枚举作为位域处理
[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
}
/// <summary>
/// 屏幕宽
/// </summary>
private int px = Screen.PrimaryScreen.Bounds.Width;
/// <summary>
/// 屏幕高
/// </summary>
private int py = Screen.PrimaryScreen.Bounds.Height;获取当前鼠标X,Y坐标
int x = MousePosition.X;
int y= MousePosition.Y;
移动示例
mouse_event(MouseEventFlag.Move | MouseEventFlag.Absolute,x *65536 / px, y* 65536 / py, 0, UIntPtr.Zero);当前位置左单击示例
mouse_event(MouseEventFlag.LeftUp | MouseEventFlag.LeftDown, 0,0,0, UIntPtr.Zero);
public static void MyMouseDown(VKKey vKeyCoad) {
int btScancode = 0;
btScancode = MapVirtualKey((byte)vKeyCoad, 0);
KBCWait4IBE(); // 'wait for buffer gets empty
SetPortVal(KBC_KEY_CMD, (IntPtr)0xD3, 1);// 'send write command
KBCWait4IBE();
SetPortVal(KBC_KEY_DATA, (IntPtr)(btScancode | 0x80), 1);// 'write in io
}
/// Simulate mouse up
public static void MyMouseUp(VKKey vKeyCoad) {
int btScancode = 0;
btScancode = MapVirtualKey((byte)vKeyCoad, 0);
KBCWait4IBE(); // 'wait for buffer gets empty
SetPortVal(KBC_KEY_CMD, (IntPtr)0xD3, 1); //'send write command
KBCWait4IBE();
SetPortVal(KBC_KEY_DATA, (IntPtr)(btScancode | 0x80), 1);// 'write in io
}