python怎么模拟鼠标移动点击_今天玩点啥:利用python之PyUserInput实现模拟鼠标键盘操作,抢红包?聊天?自动下载?...

0a39b2f905aa6c09fb48c61b95873be4.png

一、PyUserInput安装
python3.5的PyMouse和PyKeyboard模块都集成到了PyUserInput模块中。在python3.5中,直接安装PyUserInput模块即可

PyUserInput模块安装前需要安装pywin32和pyHook模块

pywin32模块默认已安装

pyHook模块可从这里下载 http://www.lfd.uci.edu/~gohlke/pythonlibs/
//在python官网找了很多个pyHook都不适用于python3.5版本

PyUserInput模块 https://github.com/PyUserInput/PyUserInput

二、使用方法
//导入模块

import pymouse,pykeyboard,os,sys
from pymouse import PyKeyboard
from pykeyboard import PyKeyboard

//分别定义一个实例

m = PyMouse()
k = PyKeyboard()

鼠标操作:
m.click(x,y,button,n) #鼠标点击
x,y 是坐标位置
buttong 1表示左键,2表示点击右键
n 点击次数,默认是1次,2表示双击

m.move(x,y) –鼠标移动到坐标(x,y)

x_dim, y_dim = m.screen_size() –获得屏幕尺寸

键盘操作:

k.type_string(‘Hello, World!’) #模拟键盘输入字符串 
k.press_key(‘H’)#模拟键盘按H键 
k.release_key(‘H’) #模拟键盘松开H键 
k.tap_key(“H”)#模拟点击H键 
k.tap_key(‘H’,n=2,interval=5) #模拟点击H键,2次,每次间隔5秒 
k.tap_key(k.function_keys[5]) #点击windows的功能键F5 
k.tap_key(k.numpad_keys[5],3) #点击windows的小键盘5,3次
#联合按键模拟 
#例如同时按alt+tab键盘 
k.press_key(k.alt_key) #按住windows的alt键 
k.tap_key(k.tab_key) #点击windows的tab键 
k.release_key(k.alt_key) #松开windows的alt键

上面是windows键的基本操作方法,macos与之类似,区别在于macos的特殊功能键对应的键位名称不同,具体请参照下方源码

下面macos系统为例写一个完整的demo:

import os
from pykeyboard import PyKeyboard#键盘输入组件
from pymouse import PyMouse#鼠标输入组件
import time
import random
import pyperclip #系统剪切板组件
def someHello(num):
    list = ['a', 'b','c', 'd','e', 'f', 'g', 'h','i', 'j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
    slice = random.sample(list, num)  # 从list中随机获取5个元素,作为一个片断返回
    return slice
def someString():
    re=['知道啦','好的','呵呵。。。。。你是魔鬼吗','恩恩,你说的都对','可爱的人说话之前会先发个红包','听说红包会让你喜欢的人回复你的概率增加99%啊','嘘,小声说话,你吵到我了']
    rp=['回复‘段子’让我开始给你讲段子吧','要不回复‘新闻’看看今天这个世界又发生了些啥吧','想获取天气预报?请回复”天气+城市“,例如”广州天气“即可','不知道今天晚饭吃什么,回复‘菜谱’让我告诉你吧',]
    return (re[random.randint(0,len(re)-1)]+','+rp[random.randint(0,len(rp)-1)])
def run(interval, num):
    
    while True:
        try:
            m = PyMouse()
            time.sleep(interval)
            print('鼠标当前位置为'+str(m.position()))
            # x=2046.79296875
            # y=758.3203125
            # m.position()#获取当前坐标的位置
            # m.move(x,y)#鼠标移动到xy位置
            # #m.click(x,y)#移动并且在xy位置点击
            # m.click(x,y,1|1)#移动并且在xy位置点击,左键双击
            # time.sleep(2)


            # x=2080.76953125
            # y=276.87890625
            # m.position()#获取当前坐标的位置
            # m.move(x,y)#鼠标移动到xy位置
            # #m.click(x,y)#移动并且在xy位置点击
            # m.click(x,y,1|2)#移动并且在xy位置点击,左键双击
            # time.sleep(2)

            x=2045.671875
            y=825.984375
            m.position()#获取当前坐标的位置
            m.move(x,y)#鼠标移动到xy位置
            m.click(x,y)#移动并且在xy位置点击
            k = PyKeyboard()
            hello=someHello(num)
            print(num)
            k.type_string(hello) #模拟键盘输入字符串 
            k.tap_key('Space') #模拟点击Space键 
            strs=someString()
            pyperclip.copy(strs)
            spam = pyperclip.paste()
            print(spam)
            k.press_key('Command') #模拟长按Command键 
            k.tap_key('V') #模拟点击v键
            k.release_key('Command') #模拟释放Command键 
            k.tap_key('Return') #模拟点击Return键


        except Exception as e:
            print (e)

if __name__=="__main__":
    interval =3
    run(interval, 10)

版权声明:本文为weixin_34112399原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。