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('程序结束~')

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

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值