python自动化脚本pyautogui点击失效,pyautogui.click()失效

背景:在Pycharm里,使用python+pyautogui编写的自动化脚本,当用pyautogui进行鼠标点击时,发现点击失效。

解决方法:运行Pycharm或者其他ide的时候选择以管理员权限启动即可。

打开pycharm以后最上方的效果:
在这里插入图片描述

但是!!!有可能还是没效果(不确定是不是游戏等界面做了限制)

那么怎么办呢

使用pip3 install pywin32 

pip3 install pypiwin32

代码如下:

import time
import win32api
import win32con
# import win32gui
# import ctypes


# 模拟鼠标指针, 传送到指定坐标
# win32api.SetCursorPos([900, 300])
# 模拟鼠标点击
def left_mouse_click():
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    time.sleep(0.05)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
    time.sleep(0.05)

# 键盘扫描码
MapVirtualKey = ctypes.windll.user32.MapVirtualKeyA
# 模拟输入字母a
def key_down_and_up(num=0x41):  # 0x41是a
    # win32api.keybd_event(虚拟码,扫描码(游戏必填),按下与抬起的标识,0)
    win32api.keybd_event(num, MapVirtualKey(num, 0), 0, 0)
    time.sleep(0.02)
    win32api.keybd_event(num, MapVirtualKey(num, 0), win32con.KEYEVENTF_KEYUP, 0)

def my_click(x=None, y=None, press_time=0.0):
    if x is None or y is None:
        win32api.SetCursorPos(pyautogui.position())
    else:
        win32api.SetCursorPos([x, y])
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    time.sleep(0.05)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
    time.sleep(0.05)

pyautogui 是一个 Python 模块,用于编程控制鼠标和键盘操作,可以进行各种自动化任务。如果你遇到了 pyautogui 模拟按键失效的情况,可能是由于以下几个原因: 1. 安全设置:某些操作系统或安全软件可能会阻止自动化脚本控制键盘和鼠标,确保你的脚本没有被这些安全软件阻止。 2. pyautogui 引发的异常:在执行按键操作时,可能会因为各种原因(比如屏幕分辨率不匹配、目标窗口不在前台等)导致异常抛出,而没有按照预期执行。 3. 驱动问题:确保你的计算机驱动是最新的,特别是显卡驱动和输入设备的驱动。 4. 焦点问题:pyautogui 要求目标窗口必须是活动的,即在前台并且拥有焦点。如果目标窗口不在前台,pyautogui 的操作可能不会生效。 5. 权限问题:在某些情况下,你可能需要以管理员权限运行你的 Python 脚本,才能正常控制键盘和鼠标。 6. 模拟的键盘事件不被应用程序接受:一些程序可能使用了特殊的输入方法或者对模拟的输入进行了限制。 解决这类问题可以尝试以下几个方法: - 检查脚本中是否有异常处理,并确保它被正确处理。 - 确保目标窗口是活动的,并且 pyautogui 的 `failSAFE` 功能没有被触发。 - 尝试使用 `pyautogui.write()` 来发送文本输入,而不是模拟具体的按键事件。 - 如果是在特定的应用程序中遇到问题,检查该应用程序的设置,看是否有相关的输入限制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值