首页/新闻资讯/正文详情

影刀RPA 键盘鼠标模拟的精细控制:延迟坐标与按键组合

发布时间:2026/11/15 7:15:21 来源:云帆数科 栏目:资讯中心
影刀RPA 键盘鼠标模拟的精细控制:延迟坐标与按键组合
影刀RPA 键盘鼠标模拟的精细控制延迟坐标与按键组合作者林焱什么情况用这个网页自动化大部分情况用【点击元素】和【填写输入框】就够了。但当你遇到以下场景就必须祭出键盘鼠标模拟了需要操作非浏览器的桌面软件ERP客户端、老旧的CS系统网页上的Flash/Canvas组件影刀的元素捕获抓不到里面的东西需要CtrlC/V等键盘快捷键组合需要拖拽操作网页弹窗遮挡了元素无法用元素定位点击这些情况的核心特点是元素捕获工具抓不到或者能抓到但指令无效。这时候你就需要模拟人坐在电脑前按键盘点鼠标的操作。怎么做第一步选择正确的模拟方式影刀提供了两种级别的模拟方式指令原理优点缺点前台模拟【模拟按键】/【鼠标点击】直接移动物理鼠标、发送按键兼容性最好操作时会占用鼠标键盘后台模拟【发送按键到窗口】向指定窗口发送消息不占用鼠标键盘部分程序不支持驱动级模拟【硬件模拟】通过驱动层模拟绕过大部分检测需要管理员权限选择原则优先尝试元素操作【点击元素】元素不行 → 前台模拟【鼠标点击】 坐标定位前台影响操作 → 后台模拟不保证有效被检测出是自动化 → 硬件模拟第二步鼠标模拟的精确控制坐标定位——最重要的基础操作店群矩阵自动化突破运营极限【鼠标移动】→ 坐标(500, 300) → 鼠标指针移动到屏幕的(500, 300)像素位置 ⚠️ 坐标是相对于整个屏幕的不是相对于窗口的 【鼠标点击】→ 左键/右键/双击 → 在鼠标当前位置点击 【鼠标拖拽】→ 起始(100,200) 到 结束(500,200) → 按住左键从A拖到B如何获取精确的屏幕坐标# 用Python节点获取鼠标位置辅助定位importpyautoguiimporttime# 打印当前鼠标位置——把鼠标放在目标位置后运行这个print(3秒后获取鼠标位置...)time.sleep(3)x,ypyautogui.position()print(f目标坐标: ({x},{y}))# 获取屏幕上某个像素的颜色用于判断状态colorpyautogui.pixel(x,y)print(f颜色:{color})窗口适配问题不同分辨率的屏幕同一个按钮的坐标不同。你需要相对坐标而不是绝对坐标# 相对窗口坐标计算importwin32guiimportwin32condefget_window_rect(window_title):获取窗口位置和大小hwndwin32gui.FindWindow(None,window_title)ifhwnd:rectwin32gui.GetWindowRect(hwnd)# rect (left, top, right, bottom)return{left:rect[0],top:rect[1],width:rect[2]-rect[0],height:rect[3]-rect[1]}returnNonedefrelative_to_absolute(window_title,rel_x,rel_y):相对坐标转绝对屏幕坐标rectget_window_rect(window_title)ifrect:return(rect[left]rel_x,rect[top]rel_y)returnNone# 使用# 假设按钮在窗口内(100, 50)位置abs_coordsrelative_to_absolute(企业ERP系统,100,50)# 影刀中点击【鼠标移动】→(abs_coords[0],abs_coords[1])【鼠标点击】→ 左键第三步键盘模拟的实战技巧基本按键操作【模拟按键】→ Enter → 按下并释放回车键 【模拟按键】→ {CTRL}c → 按下CtrlC复制 【模拟按键】→ {CTRL}v → 按下CtrlV粘贴 【模拟按键】→ {ALT}{TAB} → 切换窗口 【模拟按键】→ {CTRL}{SHIFT}N → 三个键组合按键代码常用清单按键写法场景回车{ENTER}或~确认表单Tab{TAB}切换焦点Esc{ESC}关闭弹窗方向键{UP} {DOWN} {LEFT} {RIGHT}菜单导航Backspace{BACKSPACE}删除| Delete |{DELETE}| 删除 || Home/End |{HOME} {END}| 跳到开头/结尾 || PageUp/Down |{PGUP} {PGDN}| 翻页 || F1-F12 |{F1}到{F12}| 功能键 |输入一大段文本# 模拟逐字输入比CtrlV更不容易被检测 【模拟按键】→ 影刀RPA自动化教程 # 如果需要中文输入注意输入法状态 # 确保输入法是英文状态或者在输入前切换到英文 【模拟按键】→ {ALT}{SHIFT} ← 切换输入法第四步间隔控制——模拟真人操作如果你发得太快有些程序处理不了。加入间隔模拟真人# 在Python节点中封装人性化输入importrandomimporttimedefhuman_type(text,min_delay0.05,max_delay0.2):模拟真人打字有快有慢偶尔停顿fori,charinenumerate(text):# 随机间隔time.sleep(random.uniform(min_delay,max_delay))pyautogui.typewrite(char)# 偶尔卡顿一下ifrandom.random()0.05:# 5%概率停顿time.sleep(random.uniform(0.3,0.8))defhuman_click(x,y):模拟真人点击# 先移动到附近不是精确目标位置offset_xrandom.randint(-3,3)offset_yrandom.randint(-2,2)# 移动速度不均匀先快后慢pyautogui.moveTo(xoffset_x,yoffset_y,durationrandom.uniform(0.3,0.7))# 短暂停顿像人在确认位置time.sleep(random.uniform(0.1,0.3))# 微调到精确位置人通常会微调pyautogui.moveTo(x,y,durationrandom.uniform(0.05,0.15))# 点击pyautogui.click()第五步截图辅助定位当坐标靠不住时窗口位置可能变了用截图匹配定位# Python节点图片识别定位点击importpyautoguidefclick_image(image_path,confidence0.9): 在屏幕上找到图片并点击 image_path: 目标图片的截图截取你要点击的按钮 confidence: 匹配度0-1建议0.85-0.95 try:locationpyautogui.locateOnScreen(image_path,confidenceconfidence)iflocation:centerpyautogui.center(location)pyautogui.click(center)returnTrueexcept:passreturnFalse# 使用# 1. 先截图保存按钮的图片D:/rpa_imgs/submit_btn.png# 2. 在流程中调用ifclick_image(D:/rpa_imgs/submit_btn.png):print(找到并点击了提交按钮)else:print(未找到按钮可能需要调整截图)第六步拖拽操作的实现# Python节点拖拽操作importpyautoguidefdrag_element(from_x,from_y,to_x,to_y):从(from_x, from_y)拖拽到(to_x, to_y)pyautogui.moveTo(from_x,from_y,duration0.3)pyautogui.mouseDown()pyautogui.moveTo(to_x,to_y,duration0.5)pyautogui.mouseUp()# 在影刀中使用【鼠标拖拽】指令更简单# 【鼠标拖拽】→ 起始(500, 300) 到 (800, 300)有什么坑坑一坐标是屏幕坐标不是窗口坐标现象取得坐标后窗口移动一下就全点错了。解决使用窗口相对坐标窗口定位importwin32guidefclick_in_window(window_title,rel_x,rel_y):在窗口内的相对位置点击hwndwin32gui.FindWindow(None,window_title)ifnothwnd:returnFalse# 先激活窗口win32gui.SetForegroundWindow(hwnd)time.sleep(0.2)# 获取窗口位置rectwin32gui.GetWindowRect(hwnd)abs_xrect[0]rel_x abs_yrect[1]rel_y pyautogui.click(abs_x,abs_y)returnTrue坑二不同分辨率的显示器现象在自己1366x768笔记本上调试的坐标到1920x1080的台式机上全错。temu店群自动化报活动案例解决用比例而不是绝对坐标defresolution_adaptive_click(rel_x_pct,rel_y_pct): 按比例点击 rel_x_pct: X坐标占屏幕宽度的比例0.5中间 rel_y_pct: Y坐标占屏幕高度的比例 screen_w,screen_hpyautogui.size()abs_xint(screen_w*rel_x_pct)abs_yint(screen_h*rel_y_pct)pyautogui.click(abs_x,abs_y)# 点击屏幕正中间resolution_adaptive_click(0.5,0.5)# 点击右上角区域resolution_adaptive_click(0.95,0.05)坑三中文输入法状态现象用【模拟按键】输入中文时出来的全是字母。原因模拟按键发送的是键盘码需要输入法处于合适状态。解决输入中文用剪贴板CtrlV更可靠# 通过剪贴板输入中文importpyperclipimportpyautoguiimporttimedeftype_chinese(text):通过剪贴板输入中文pyperclip.copy(text)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4e06743876ec4499a8469c4732af2457.png#pic_center)time.sleep(0.1)pyautogui.hotkey(ctrl,v)# 或者在影刀中# 1. 先把中文文本复制到剪贴板# 2. 【模拟按键】→ {CTRL}v坑四模拟操作期间被干扰现象流程正在自动操作不小心动了鼠标导致点错位置。解决模拟操作前后设置标志比如修改系统托盘图标颜色关键操作之间加微延迟避免操作叠加工作用机最好在执行自动化期间不要人手动操作坑五{CTRL}组合键在某些程序无效现象{CTRL}c在记事本中能复制在某个老ERP里没反应。原因部分程序拦截了标准键盘消息或者需要不同的修饰键。解决尝试不同的方式# 方法1标准组合键pyautogui.hotkey(ctrl,c)# 方法2按下-等待-释放pyautogui.keyDown(ctrl)time.sleep(0.1)pyautogui.press(c)time.sleep(0.1)pyautogui.keyUp(ctrl)# 方法3SendMessageWindows API级别importwin32apiimportwin32con# 向目标窗口发送 WM_COPY 消息总结键盘鼠标模拟是自动化中的最后手段——能用元素定位就不用模拟能用接口就不用操作UI。但当你不得不模拟的时候记住三件事用相对坐标、加随机延迟、时刻准备处理异常。模拟操作是最容易受环境变化影响的操作方式。

相关推荐

C++项目多语言字符串管理方案:从静态安全到动态加载的工程实践
C++项目多语言字符串管理方案:从静态安全到动态加载的工程实践

1. 项目概述:为什么我们需要一个“聪明”的字符串管理系统在任何一个有国际化(i18n)或本地化(l10n)需求的C项目中,字符串管理都是一个看似简单、实则暗藏玄机的环节。你肯定遇到过这样的场景:产… · 2026/11/15 7:15:20

图书清单怎么整理成 Excel?把版权页照片汇总成可核对的书目表
图书清单怎么整理成 Excel?把版权页照片汇总成可核对的书目表

给每本书拍过版权页,图片很快会堆成一整个文件夹。可当你要找某本书的出版者、出版日期或 ISBN(国际标准书号)时,还是得一张张打开照片。 要把版权页照片变成真正能使用的图书清单,关键不在于把所有文字都抄进 Excel&… · 2026/11/15 7:15:19

基于TI C2000 DSP的LLC谐振变换器数字控制软件设计实践
基于TI C2000 DSP的LLC谐振变换器数字控制软件设计实践

1. 项目概述与LLC拓扑核心价值在电源设计领域,追求更高的效率和功率密度是一个永恒的主题。尤其是在服务器、通信基站、工业自动化这类对能耗和体积有严苛要求的场景里,传统的硬开关拓扑逐渐显得力不从心。这时,LLC谐振转换器凭借其独特的软开… · 2026/10/18 15:42:49

扬州特种工报名流程,上岗必备这些事你得知道
扬州特种工报名流程,上岗必备这些事你得知道

扬州特种工报名流程,上岗必备这些事你得知道 工地太忙根本没时间复习考试,特种作业证报名流程又复杂,很多工人一拖再拖,最后发现错过考试,岗位也上不了,项目还得停工。其实,特种作业证是 上岗必备… · 2026/11/15 7:15:01

不说再见电工证怎么考 郑州报考避坑指南
不说再见电工证怎么考 郑州报考避坑指南

不说再见电工证怎么考 郑州报考避坑指南 你是不是也和我一样,学历不高,怕报不上名?别担心,电工证其实对学历的要求并没有那么高,只要你愿意花点心思,完全是可以考下来的。今天就以濮阳水利工程从业者为例,带你一步步了解【不说再见电工证怎么考】的全… · 2026/11/15 7:15:01

宁波低压电工证在哪考怎么报名 这个问题你必须知道
宁波低压电工证在哪考怎么报名 这个问题你必须知道

宁波低压电工证在哪考怎么报名 这个问题你必须知道 之前考的证在外省能不能转过来?你不是一个人。很多在宁波打工的电工朋友,都是在外省考的证,后来想回来发展,结果发现证件不被认可,或者要重新报名、考试,白白浪费时间和金钱。今天咱们就来聊聊… · 2026/11/15 7:15:01

买个初级电工证值不值得考?怕考不过白交培训费的看过来
买个初级电工证值不值得考?怕考不过白交培训费的看过来

买个初级电工证值不值得考?怕考不过白交培训费的看过来 怕考不过白交培训费?别急,咱们今天就来聊聊 买个初级电工证 到底值不值得考,尤其是你作为济源中小施工企业的负责人,手里正缺个电工证,又担心流程复杂、考不过、花冤枉钱,这些你关心的问题我全… · 2026/11/15 7:15:01

北京安装电工证丢了怎么补办 内部消息透露补办流程
北京安装电工证丢了怎么补办 内部消息透露补办流程

北京安装电工证丢了怎么补办 内部消息透露补办流程 你正在找工作的关键时候,手里偏偏缺了个【北京安装电工证】,这事儿可太煎熬了,别急,我这儿有个 内部消息 ,告诉你怎么补办,还能快速拿到证,别让这个证耽误你上岗机会。… · 2026/11/15 7:15:01

怎样报考电工证贵不贵全流程办理指南
怎样报考电工证贵不贵全流程办理指南

证书过期了不知道怎么复审延期 电工证含金量高不高怎么报考电工证贵不贵全攻略 证书过期了不知道怎么复审延期?你不是一个人,这是很多电工从业者遇到的真实问题。别急,今天咱们就来聊聊 怎样报考电工证贵不贵 ,同时带你看清电工证的 含金量… · 2026/11/15 7:14:00

长春初级电工证怎么考?通过率揭秘全在这里
长春初级电工证怎么考?通过率揭秘全在这里

长春初级电工证怎么考?通过率揭秘全在这里 之前考的证在外省能不能转过来?这几乎是每个想从事电工工作的人都会问的问题。特别是那些在外地打拼多年、手里握着一张“外地电工证”的人,到了长春想继续干这一行,第一反应就是“我的证能用吗?”。今天我们就… · 2026/11/15 0:00:50

国内电工证报考条件与考试时间
国内电工证报考条件与考试时间

低压电工证怎么考?学历不高也能报名,官方报名入口全在这 你是不是经常听说“电工证是入行门槛”,但又担心自己学历不够、经验不足,根本报不了名?别急,今天就带你从零了解【国内电工证】的报考流程、考试内容,还有怎么在 官方报名入口… · 2026/11/15 0:00:50

电工作业时如何断电?电子证书到底能不能全国通用?
电工作业时如何断电?电子证书到底能不能全国通用?

电工作业时如何断电?电子证书到底能不能全国通用? 实操考试心里没底怕挂科,特别是电工作业时如何断电这一操作,不仅关系到你能不能拿到证书,更关系到以后能不能顺利上岗。很多人觉得这不过就是“断个电”,但其实这里面的门道可不少,稍有不慎就可能出错… · 2026/11/15 0:00:50

长春初级电工证怎么考?通过率揭秘全在这里
长春初级电工证怎么考?通过率揭秘全在这里

长春初级电工证怎么考?通过率揭秘全在这里 之前考的证在外省能不能转过来?这几乎是每个想从事电工工作的人都会问的问题。特别是那些在外地打拼多年、手里握着一张“外地电工证”的人,到了长春想继续干这一行,第一反应就是“我的证能用吗?”。今天我们就… · 2026/11/15 0:00:50

国内电工证报考条件与考试时间
国内电工证报考条件与考试时间

低压电工证怎么考?学历不高也能报名,官方报名入口全在这 你是不是经常听说“电工证是入行门槛”,但又担心自己学历不够、经验不足,根本报不了名?别急,今天就带你从零了解【国内电工证】的报考流程、考试内容,还有怎么在 官方报名入口… · 2026/11/15 0:00:50

电工作业时如何断电?电子证书到底能不能全国通用?
电工作业时如何断电?电子证书到底能不能全国通用?

电工作业时如何断电?电子证书到底能不能全国通用? 实操考试心里没底怕挂科,特别是电工作业时如何断电这一操作,不仅关系到你能不能拿到证书,更关系到以后能不能顺利上岗。很多人觉得这不过就是“断个电”,但其实这里面的门道可不少,稍有不慎就可能出错… · 2026/11/15 0:00:50

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/15 1:51:20

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/15 4:02:19

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/15 3:02:05

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码