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