Python模拟鼠标点击

from pynput.mouse import Controller as mouse_Control
from pynput.mouse import Button as mouse_Button
from pynput.keyboard import Controller, Key, Listener
import multiprocessing
import time

'''
    create by Ruiyang : 2022/5/17
'''


# 监听按压
def on_press(key):
    try:
        print("正在按压:", format(key.char))
    except AttributeError:
        print("正在按压:", format(key))


# 监听释放
def on_release(key):
    if key == Key.esc:
        print(f'{"-"*40}\n监听进程结束')
        # 停止监听
        return False

# 开始监听
def start_listen():
    with Listener(on_press=on_press, on_release=on_release) as listener:
        listener.join()


def main_keyboard():
    # 实例化键盘
    kb = Controller()
    # 开始监听,按esc退出监听
    start_listen()


# 鼠标的控制函数
def mouse_click():
    mouse = mouse_Control()  # 获取鼠标管理员权限
    mouse.click(mouse_Button.left)


# 主函数
def main(times):
    print('倒计时5s,给点准备时间')
    time.sleep(5)
    count = 0
    for i in range(times):
        mouse_click()
        count += 1
        print('第%d次点击' % count)

if __name__ == '__main__':
    msg = '''
                                                                               
  ,---.            ,--.               ,--.   ,--.                              
 /  O  \ ,--.,--.,-'  '-. ,---.       |   `.'   | ,---. ,--.,--. ,---.  ,---.  
|  .-.  ||  ||  |'-.  .-'| .-. |      |  |'.'|  || .-. ||  ||  |(  .-' | .-. : 
|  | |  |'  ''  '  |  |  ' '-' ',----.|  |   |  |' '-' ''  ''  '.-'  `)\   --. 
`--' `--' `----'   `--'   `---' '----'`--'   `--' `---'  `----' `----'  `----' 
                                                                               
                                                                                    '''
    print(f'{msg}\n正在开启鼠标点击......')
    times = int(input('请输入点击次数: '))
    print(f'{"-"*40}\n开始进程!(按esc以结束进程)')
    # 创建进程1,2
    p1 = multiprocessing.Process(target=main_keyboard)
    p2 = multiprocessing.Process(target=main, args=(times,))
    # 启动进程1,2
    p1.start()
    p2.start()
    # 如果p1子进程结束, p2进程就结束
    p1.join()
    p2.terminate()
    p2.join()
    print('程序结束~')

其中多进程是为了在点击的同时监听键盘,可以达到随时退出的效果。目前暂时不做代码解析,请各位自己根据注释阅读代码。

你可能感兴趣的:(Python,python,开发语言)