背景:在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)

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐