delphi 局域网内模拟电脑鼠标移动与 delphi 模拟鼠标点击 - 电脑知识 - 【三明电脑网】_三明电脑维修_三明笔记本电脑维修_监控安装_市区上门维修

全国统一24小时服务热线:400-0000-000400-0000-000  / 1399000000

当前位置:首页 > 电脑知识 > 正文

delphi 局域网内模拟电脑鼠标移动与 delphi 模拟鼠标点击

发布日期:2020-10-27

摘要:如何在Delphi下模拟鼠标移动和单击功能核心方法是调用API——SendInput,简单举例如下:varrInput : TInput; FillChar( rInput, SizeOf(...

delphi 局域网内模拟电脑鼠标移动与

如何在Delphi下模拟鼠标移动和单击功能

核心方法是调用API——SendInput,简单举例如下:varrInput : TInput;......FillChar( rInput, SizeOf( rInput ), 0 );rInput.Itype := INPUT_MOUSE; // 鼠标消息rInput.mi.dx := 0; // 指针横坐标rInput.mi.dy := 0; // 指针纵坐标rInput.mi.dwFlags := MOUSEEVENTF_MOVE; // 移动指针SendInput( 1, @rInput, SizeOf( rInput ) ); // 发送消息(鼠标)FillChar( rInput, SizeOf( rInput ), 0 );rInput.Itype := INPUT_KEYBOARD; // 键盘消息rInput.ki.wVk := VK_LEFT; // 左箭头的键码rInput.ki.dwFlags := KEYEVENTF_KEYUP; // 指示键被抬起,如没有本行,则表示按下SendInput( 1, @rInput, SizeOf( rInput ) ); // 发送消息(左箭头)更详细的例子不大好弄,和具体意图十分相关,还是看看MSDN关于SendInput、MOUSEINPUT、KEYBDINPUT的说明吧。

需要注意的是发送鼠标消息时,指针坐标是虚拟坐标系——[ 0, 0 ]~[ 65535, 65535 ],而不是显卡、屏幕分辨率数值范围,因此,需要类似如下方法进行转换。

procedure ClientToVirtual( const H : HWND; const PMI : PMouseInput );const{ 鼠标指针坐标采用虚拟坐标系:[ 0, 0 ] ~ [ 65535, 65535 ] }{ 参见API函数SendInput }C_n_VirtualWidth = 65536;C_n_VirtualHeight = 65536;varP : TPoint;beginP.X := PMI.dx;P.Y := PMI.dy;ClientToScreen( H, P );PMI.dx := P.X * C_n_VirtualWidth div Screen.Width;PMI.dy := P.Y * C_n_VirtualHeight div Screen.Height;end;该函数涉及到一个窗口句柄,它的获得可以通过调用EnumWindow枚举、调用FindWindow查找,也可以设为通过其它方法了解到的立即数(如Spy++等),一般来说,发送消息是要指定向谁发送的,但SendInput接口中没有HWND参数,就需要调用SetForegroundWindow把期望的窗口提升到顶层......综上,弄这个还是需要掌握不少相关知识的,没有什么捷径,看MSDN实乃正解。

Delphi 模拟鼠标点击

调用API函数 可以直接调用 我下面写的是VB程序 因手里没有DELPHI但 你略做修改即可。

Const MOUSEEVENTF_LEFTDOWN = &H2Const MOUSEEVENTF_LEFTUP = &H4Const MOUSEEVENTF_MIDDLEDOWN = &H20Const MOUSEEVENTF_MIDDLEUP = &H40Const MOUSEEVENTF_MOVE = &H1Const MOUSEEVENTF_ABSOLUTE = &H8000Const MOUSEEVENTF_RIGHTDOWN = &H8Const MOUSEEVENTF_RIGHTUP = &H10 这以上是下面用到的常量 代表的数值 mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 1, 1, 0, 0 这句是模拟鼠标点击的那句 然后就是需要移动 鼠标了 SetCursorPos 100,100 这样是设置鼠标到屏幕的 100,100的位置 可根据你自己的需要修改 如果你有一定编程基础我上面的这些就已经能够帮你了。

特殊声明:API在VB里需要声明 在DELPHI里不需要声明 直接调用即可。

(最上面的那些常量 可以直接带到函数里使用。

上一篇:小糊涂家装预算软件破解版 家装预算软件破解版

下一篇:word"文件"菜单 word2007文件菜单在哪