您当前的位置:首页 > 计算机 > 编程开发 > Python

Python 键盘鼠标操作

时间:04-01来源:作者:点击数:

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 PyMouse

from pykeyboard import PyKeyboard

//分别定义一个实例

m = PyMouse()

k = PyKeyboard()

鼠标操作:

x,y = 1580,1025

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]) –点击功能键F5

k.tap_key(k.numpad_keys[5],3) –点击小键盘5,3次

联合按键模拟

例如同时按alt+tab键盘

k.press_key(k.alt_key) –按住alt键

k.tap_key(k.tab_key) –点击tab键

k.release_key(k.alt_key) –松开alt键

示例代码如下:

def mouse_coordinates():
    """ 获取鼠标坐标 """
    import os,time
    import pyautogui as pag
    try:
        while True:
                print ("Press Ctrl-C to end")
                x,y = pag.position() #返回鼠标的坐标
                posStr="Position:"+str(x).rjust(4)+','+str(y).rjust(4)
                print (posStr) #打印坐标
                time.sleep(0.2)
                os.system('cls') #清除屏幕
    except  KeyboardInterrupt:
        print ('end....')

def keystroke():
    """ 按键操作 """
    from pymouse import PyMouse
    from pykeyboard import PyKeyboard
    m = PyMouse()
    k = PyKeyboard()

    x,y=1580,1025 # 鼠标坐标
    m.click(x,y,1,1)  # 左键点击一次
    k.type_string('hello') # 输入hello
    time.sleep(0.1)
    k.tap_key(k.enter_key,1) # 回车
    x,y=260,38
    m.click(x,y,1,1) # 左击另一个坐标一次


def write_window(ct_name=None):
    """ 向窗体的文本框写入字符串, 
    执行此方法需要传入窗口句柄或者打开一个记事本 """
    from ctypes import windll as win32
    WM_CHAR = 0x0102
    ct_name = ct_name if ct_name else 'Notepad'
    try:
        hWnd = win32.user32.FindWindowW(ct_name, None)
        assert hWnd
        hEdit = win32.user32.FindWindowExW(hWnd, None, 'Edit', None)
        assert hEdit
    except AssertionError:
        print('Notepad not found')
    else:
        for char in '我爱你, 世界':
            win32.user32.SendMessageW(hEdit, WM_CHAR, ord(char), None)
        # 回车
        win32gui.PostMessage(hEdit, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
        win32gui.PostMessage(hEdit, win32con.WM_KEYUP, win32con.VK_RETURN, 0)

def get_window():
    """ 获取所有Windows打开的窗体句柄 """
    from win32gui import IsWindow,IsWindowEnabled,IsWindowVisible,GetWindowText,EnumWindows
    titles = set()
    def foo(hwnd, mouse):
        # 去掉下面这句判断就能获取所有
        if IsWindow(hwnd) and IsWindowEnabled(hwnd) and IsWindowVisible(hwnd):
            titles.add(GetWindowText(hwnd))
    EnumWindows(foo, 0)
    return titles
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门