netframework如何模拟鼠标?netframework通过下载6.0版本以及.NETCore3.1进行文档的代码修改来模拟鼠标,下面一起看看netframework模拟鼠标教程吧!
net framework如何模拟鼠标
方法一:
1、通过use32的SendInput,use32的SendInput模拟鼠标。
2、定义代码:
[DllImport("user32.dll",SetLastError=true)]
internalstaticexternintSendInput(intnInputs,refINPUTmi,intcbSize);
其中的INPUT结构表示一个键盘或鼠标操作:
[StructLayout(LayoutKind.Sequential)]
internalstructINPUT
{
internalinttype;
internalINPUTUNIONunion;
};
[StructLayout(LayoutKind.Explicit)]
internalstructINPUTUNION
{
[FieldOffset(0)]
internalMOUSEINPUTmouseInput;
[FieldOffset(0)]
internalKEYBDINPUTkeyboardInput;
};
[StructLayout(LayoutKind.Sequential)]
internalstructMOUSEINPUT
{
internalintdx;
internalintdy;
internalintmouseData;
internalintdwFlags;
internalinttime;
internalIntPtrdwExtraInfo;
};
[StructLayout(LayoutKind.Sequential)]
internalstructKEYBDINPUT
{
internalshortwVk;
internalshortwScan;
internalintdwFlags;
internalinttime;
internalIntPtrdwExtraInfo;
};
[Flags]
internalenumSendMouseInputFlags
{
Move=0x0001,
LeftDown=0x0002,
LeftUp=0x0004,
RightDown=0x0008,
RightUp=0x0010,
MiddleDown=0x0020,
MiddleUp=0x0040,
XDown=0x0080,
XUp=0x0100,
Wheel=0x0800,
Absolute=0x8000,
};
方法二:
1、netframework模拟鼠标需要安装.NET6/.NET5(包括.NETCore3.1)的桌面指南文档进行改写。
2、以On后跟EventName的模拟命名,这种方法只适合自定义控件或窗体内。
3、使用方法:
想模拟鼠标悬停在ListBox中的某一项,OnMouseMove和ListBox不会以光标下的显示项作为方式反应。
PS:受保护的方法可用于模拟鼠标
OnMouseDown
OnMouseEnter
OnMouseHover
OnMouseLeave
OnMouseMove
OnMouseUp
OnMouseWheel
OnMouseClick
OnMouseDoubleClick