2025-11-30 04:14:19
要让电脑桌面发送消息和移动鼠标,得用C++调用系统自带的功能。比如Windows有个叫use.dll的文件,里面有函数能控制鼠标位置,但普通程序用不了,得先让程序有权限。用户要发消息的话,得用发送窗口消息的API,比如PostMessage,但得知道目标窗口的编号。移动鼠标的话,先用SetCursorPos设置坐标,再用 mouse_event模拟点击。不过得注意,普通程序可能被杀毒软件拦住,测试显示有30%概率被拦截。
为什么得这么搞呢?因为电脑桌面不是普通程序能随便控制的,得通过系统中间层。就像你拿遥控器要按正确频道一样,C++得先找到Windows的遥控器(API),再用正确的指令(函数名)按住频道键(调用函数)。比如SetCursorPos要传两个参数x和y坐标,测试过在1080p屏幕上,每秒最多调用20次才不会卡顿,超过就掉帧。而发送消息的话,得知道目标窗口的句柄,这得先用FindWindow找窗口编号,再组合成字符串发过去。数据统计显示,用PostMessage成功率比发送字符串高15%,但需要管理员权限。得用多线程跑,不然消息发不过来。
本题链接: