2025年2月14日 星期五 甲辰(龙)年 腊月十四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

Python 键盘鼠标操作

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

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
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门