python 操作键盘,鼠标 。我这个是自动企业微信加好友的,源码可以修改成别的。挺好使!
键盘的按键码可以去百度搜,大体就是这么操作的
import win32con
import win32api
import win32gui
import time
import xlrd
import xlwt
import win32clipboard
#点击键盘的f键,其中70是f虚拟键码
def key(key):
win32api.keybd_event(key,0,0,0) #代表按下f键
time.sleep(0.02)
win32api.keybd_event(key, 0, win32con.KEYEVENTF_KEYUP, 0) #释放f键
def ctrlA():
#按下ctrl+a,全选
#17为ctrl键码值,65为a的键码值
win32api.keybd_event(17,0,0,0)
win32api.keybd_event(65,0,0,0)
win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(65, 0, win32con.KEYEVENTF_KEYUP, 0)
time.sleep(1)
def ctrlC():
#按下ctrl+c,67键码值为c
win32api.keybd_event(17,0,0,0)
win32api.keybd_event(67,0,0,0)
win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(67, 0, win32con.KEYEVENTF_KEYUP, 0)
time.sleep(1)
def ctrlV():
#按下ctrl+v
win32api.keybd_event(17,0,0,0)
win32api.keybd_event(86,0,0,0)
win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(86, 0, win32con.KEYEVENTF_KEYUP, 0)
time.sleep(1)
#鼠标现在屏幕上方的位置
def getMouse():
pos = win32gui.GetCursorPos()
print(pos)
#鼠标移动
def move(x,y):
win32api.SetCursorPos((x,y))
#鼠标左点击
def leftClick():
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN | win32con.MOUSEEVENTF_LEFTUP,0,0,0,0)
#鼠标右点击
def rightClick():
win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTDOWN | win32con.MOUSEEVENTF_RIGHTUP,0,0,0,0)
def read_excel(src):
# 打开文件
workBook = xlrd.open_workbook(src)
# 1.获取sheet的名字
# 1.1 获取所有sheet的名字(list类型)
# allSheetNames = workBook.sheet_names()
# print(allSheetNames)
# 1.2 按索引号获取sheet的名字(string类型)
# sheet1Name = workBook.sheet_names()[0]
# print(sheet1Name)
# 2. 获取sheet内容
## 2.1 法1:按索引号获取sheet内容
sheet1_content1 = workBook.sheet_by_index(0); # sheet索引从0开始
## 2.2 法2:按sheet名字获取sheet内容
# sheet1_content2 = workBook.sheet_by_name('Sheet1')
# 3. sheet的名称,行数,列数
# print(sheet1_content1.name,sheet1_content1.nrows,sheet1_content1.ncols)
# 4. 获取整行和整列的值(数组)
# rows = sheet1_content1.row_values(3); # 获取第四行内容
cols = sheet1_content1.col_values(0); # 获取第1列内容
return cols
# 5. 获取单元格内容(三种方式)
# print(sheet1_content1.cell(1, 0).value)
# print(sheet1_content1.cell_value(2, 2))
# print(sheet1_content1.row(2)[2].value)
# 6. 获取单元格内容的数据类型
# Tips: python读取excel中单元格的内容返回的有5种类型 [0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error]
# print(sheet1_content1.cell(1, 0).ctype)
#把文本读取到win10的paste缓冲区
def setPaste(paste):
# set clipboard data
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardText(paste)
win32clipboard.CloseClipboard()
#获取paste内容
def getPaste():
# get clipboard data
win32clipboard.OpenClipboard()
data = win32clipboard.GetClipboardData()
win32clipboard.CloseClipboard()
return data
def timeSleep(s):
time.sleep(s)
if __name__ == '__main__':
#区分屏幕分辨率
if(win32api.GetSystemMetrics(win32con.SM_CXSCREEN)==1920):
print("请输入excle路径地址")
src=input()
print("请设置邀请语")
invite=input()
cols=read_excel(src)
for col in cols:
#1.取出第一个手机号
print("读取手机号--"+str(int(col)))
setPaste(str(int(col)))
#2.移动鼠标
move(821,436)
timeSleep(1)
#3.鼠标左击
leftClick()
#4.粘贴
ctrlV()
#移动到查找
move(1116,430)
timeSleep(1)
leftClick()
#睡眠三秒防止网络缓慢
timeSleep(5)
#移动到添加
move(1071,535)
timeSleep(1)
leftClick()
#去掉邀请语
move(1092,497)
timeSleep(1)
leftClick()
leftClick()
#设置邀请语
setPaste(invite)
timeSleep(3)
leftClick()
ctrlV()
#移动到发送
move(967,578)
timeSleep(3)
leftClick()
#移动到搜索框
move(916,428)
timeSleep(1)
leftClick()
ctrlA()
key(8)
input('回车退出程序')
else:
print("请输入excle路径地址")
src=input()
print("请设置邀请语")
invite=input()
cols=read_excel(src)
for col in cols:
#1.取出第一个手机号
print("读取手机号--"+str(int(col)))
setPaste(str(int(col)))
#2.移动鼠标
move(650,343)
timeSleep(1)
#3.鼠标左击
leftClick()
#4.粘贴
ctrlV()
#移动到查找
move(876,341)
timeSleep(1)
leftClick()
#睡眠三秒防止网络缓慢
timeSleep(5)
#移动到添加
move(847,450)
timeSleep(1)
leftClick()
#去掉邀请语
move(853,409)
timeSleep(1)
leftClick()
leftClick()
#设置邀请语
setPaste(invite)
timeSleep(3)
leftClick()
ctrlV()
#移动到发送
move(700,479)
timeSleep(3)
leftClick()
#移动到搜索框
move(675,343)
timeSleep(1)
leftClick()
ctrlA()
key(8)
input('回车退出程序')