Mouse and keyboard operation in windows using python

using the api of win32.
The demo code of operating mouse:

import win32api,win32con

#鼠标定位到(500,500)
win32api.SetCursorPos([500,500])
#执行左单键击,若需要双击则延时几毫秒再点击一次即可
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
#右键单击
win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP | win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)

The demo code of operating the keyboard:

import time, threading, copy

import sys
import win32api, win32con

SCAN_TIME = 1.0 / 50
KEY_VALUE_LIST = {
    'left': 37, 'up': 38,
    'right': 39, 'down': 40, }

class keyboard(object):
    __keyList = set()
    def __init__(self):
        self.mainThread = threading.Thread(target=self.__main_thread_fn)
        self.mainThread.setDaemon(True)
        self.mainThread.start()
    def __main_thread_fn(self):
        while 1:
            for keyValue in copy.copy(self.__keyList):
                win32api.keybd_event(keyValue, 0, 0, 0)
            time.sleep(SCAN_TIME)
    def __get_key_value(self, key):
        if key.isdigit() and 0 <= int(key) <= 9:
            return int(key)
        elif len(key) == 1 and 65 <= ord(key.upper()) <= 90:
            return ord(key.upper())
        elif key in KEY_VALUE_LIST.keys():
            return KEY_VALUE_LIST[key]
    def key_down(self, key):
        keyValue = self.__get_key_value(key)
        if keyValue is None: return False
        self.__keyList.add(keyValue)
        return True
    def key_up(self, key):
        keyValue = self.__get_key_value(key)
        if keyValue is None: return False
        if keyValue in self.__keyList: self.__keyList.remove(keyValue)
        return True

if __name__ == '__main__':
    kb = keyboard()
    time.sleep(20)
    kb.key_down('b')
    time.sleep(20)
    kb.key_up('b')
    try:
        sys.stdin.read()
    except:
        print('Finish')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值