首页 > 解决方案 > 如何在 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次。

标签: pythonkeyboardmousepyautoguipynput

解决方案


该脚本按预期工作,但您尝试应用+的目标似乎不接受此类输入,而其在 Windows GUI 上的窗口不在焦点上。这就是为什么当您在+之前包含 a 时它起作用的原因,因为第一次单击会使目标窗口(无论它是什么程序/应用程序)成为焦点,然后已经工作但被忽略的+也被目标接受ShiftLeft-ClickLeft-ClickShiftLeft-ClickShiftLeft-Click


推荐阅读