python - 如何在 Windows 中按住 SHIFT 键模拟鼠标单击?
问题描述
您好,我正在尝试在按住SHIFT键的同时模拟鼠标点击。我一直在尝试使用该pynput
模块来做到这一点。
到目前为止,这是我的代码:
from pynput.keyboard import Key
from pynput.keyboard import Controller as Cont
from pynput.mouse import Button, Controller
import time
mouse = Controller()
keyboard = Cont()
with keyboard.pressed(Key.shift):
mouse.position = (1892, 838)
mouse.click(Button.left)
我知道按住 shift 键的代码正在工作(如果我尝试按代码中的“a”按钮,我会看到“A”)。我也知道鼠标点击是有效的。但是,一起使用是行不通的。
我还尝试了 StackOverflow 帖子中的另一个代码:Pyautogui - Need to hold shift and click
我从中尝试了以下代码:
import pyautogui
pyautogui.keyDown('shift')
pyautogui.click()
pyautogui.keyUp('shift')
这工作了一分钟,然后它停止工作!很奇怪。它失败了10次中有9次。
解决方案
该脚本按预期工作,但您尝试应用+的目标似乎不接受此类输入,而其在 Windows GUI 上的窗口不在焦点上。这就是为什么当您在+之前包含 a 时它起作用的原因,因为第一次单击会使目标窗口(无论它是什么程序/应用程序)成为焦点,然后已经工作但被忽略的+也被目标接受ShiftLeft-ClickLeft-ClickShiftLeft-ClickShiftLeft-Click
推荐阅读
- python - 正则表达式搜索中间有日期的文件
- highcharts - Highchart sankey-独立显示多个具有相同名称的条目
- excel - Outlook VBA 代码更新工作表后 Excel 文档锁定为只读
- mysql - 插入新行时自动更新 MySQL 行
- php - 正则表达式从字符串中删除特定的样式标签
- java-8 - 如何在 Project Reactor 中缓存项目并避免缓存踩踏?
- regex - 解析目录中包含与一组字符串匹配的文件 - 将匹配线拉到新文件
- python - 如何以这种方式对二维列表中的元素进行排序?
- ffmpeg - 使用 libavcodec 将视频解码为 YUV422
- r - ggplots 上的数学表达式