同步操作将从 zeno/python-tool 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
import win32conimport win32apiimport win32guiimport timeimport xlrdimport xlwtimport win32clipboardimport pandas as pd#点击键盘的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键码值为cwin32api.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+vwin32api.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)#保存exceldef export_excel(export):#将字典列表转换为DataFramepf = pd.DataFrame(list(export))# #指定字段顺序# order = ['road_name','bus_plate','timeline','road_type','site']# pf = pf[order]# #将列名替换为中文# columns_map = {# 'road_name':'路线',# 'bus_plate':'车牌',# 'timeline':'时间',# 'road_type':'方向',# 'site':'站点'# }# pf.rename(columns = columns_map,inplace = True)#指定生成的Excel表格名称file_path = pd.ExcelWriter('手机号搜不到用户.xlsx')#替换空单元格pf.fillna(' ',inplace = True)#输出pf.to_excel(file_path,encoding = 'utf-8',index = False)#保存表格file_path.save()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); # 获取第四行内容cols1 = sheet1_content1.col_values(0); # 获取第1列内容cols2 = sheet1_content1.col_values(1)cols = dict(zip(cols1, cols2))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 datawin32clipboard.OpenClipboard()win32clipboard.EmptyClipboard()win32clipboard.SetClipboardText(paste)win32clipboard.CloseClipboard()#获取paste内容def getPaste():# get clipboard datawin32clipboard.OpenClipboard()data = win32clipboard.GetClipboardData()win32clipboard.CloseClipboard()return datadef timeSleep(s):time.sleep(s)hwnd_title= dict()def get_all_hwnd(hwnd,mouse):if win32gui.IsWindow(hwnd) and win32gui.IsWindowEnabled(hwnd) and win32gui.IsWindowVisible(hwnd):hwnd_title.update({hwnd:win32gui.GetWindowText(hwnd)})notFound={}wxNotFound="该用户不存在"def isExist(userPhone):global hwnd_titlewin32gui.EnumWindows(get_all_hwnd, 0)for h,t in hwnd_title.items():if t is not "":# print(userPhone,t)if(wxNotFound in t):notFound.update({userPhone:t})hwnd_title= dict()if __name__ == '__main__':if(win32api.GetSystemMetrics(win32con.SM_CXSCREEN)==1920):print("请输入excle路径地址")src=input()print("请设置邀请语")invite=input()cols=read_excel(src)for f, col in cols.items():#1.取出第一个手机号print("读取姓名"+f+"读取手机号--"+str(int(col)))setPaste(str(int(col)))#2.移动鼠标move(821,436)timeSleep(1)#3.鼠标左击leftClick()#4.粘贴ctrlV()#移动到查找move(1116,430)timeSleep(1)leftClick()#睡眠三秒防止网络缓慢timeSleep(1)#获取句柄信息判断企业微信用户是否存在isExist(str(int(col)))timeSleep(3)#如果搜不到用户move(1090,575)leftClick()#移动到添加move(1071,535)timeSleep(1)leftClick()#去掉邀请语move(1092,497)timeSleep(1)leftClick()leftClick()#设置邀请语setPaste(f+":"+invite)timeSleep(3)leftClick()ctrlV()#移动到发送move(967,578)timeSleep(2)leftClick()#移动到搜索框move(916,428)timeSleep(1)leftClick()ctrlA()key(8)timeSleep(2)print(notFound)export_excel(notFound)input('未搜到用户已保存到桌面,\n回车退出程序')else:print("请输入excle路径地址")src=input()print("请设置邀请语")invite=input()cols=read_excel(src)for f, col in cols.items():#1.取出第一个手机号print("姓名"+f+"读取手机号--"+str(int(col)))setPaste(str(int(col)))#2.移动鼠标move(650,343)timeSleep(1)#3.鼠标左击leftClick()#4.粘贴ctrlV()#移动到查找move(876,341)timeSleep(1)leftClick()#睡眠三秒防止网络缓慢timeSleep(1)#如果搜不到用户#获取句柄信息判断企业微信用户是否存在isExist(str(int(col)))move(848,484)leftClick()#移动到添加move(847,450)timeSleep(1)leftClick()#去掉邀请语move(853,409)timeSleep(1)leftClick()leftClick()#设置邀请语setPaste(f+":"+invite)timeSleep(3)leftClick()ctrlV()#移动到发送move(700,479)timeSleep(2)leftClick()#移动到搜索框move(675,343)timeSleep(1)leftClick()ctrlA()key(8)timeSleep(2)print(notFound)export_excel(notFound)input('未搜到用户已保存到桌面,\n回车退出程序')
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。