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