Python 模仿按键精灵,批量验证和添加手机号码为企业微信账号的联系人「建议收藏」

Python 模仿按键精灵,批量验证和添加手机号码为企业微信账号的联系人「建议收藏」源码:importtkinterastkimportpyautoguiaspgimporttkinter.messageboxasmsgboxdefsetpos():globalx,ytry:x,y=eval(tEntry.get())except:passpg.click(x-150,y)pg.typewrite(‘1’)pg.moveTo(x,y,duration=0.5)defalt…

大家好,又见面了,我是你们的朋友全栈君。

需求

批量验证和添加手机号码为企业微信账号的联系人

Python 模仿按键精灵,批量验证和添加手机号码为企业微信账号的联系人「建议收藏」

源码

import tkinter as tk
import pyautogui as pg
import tkinter.messagebox as msgbox

def setpos():
    global x,y
    try: x,y = eval(tEntry.get())
    except: pass
    pg.click(x-150,y)
    pg.typewrite('1')
    pg.moveTo(x,y,duration=0.5)

def alter(num):
    tList.delete(index)
    tList.insert(index,phone+','+str(num))
    user[index] = phone+','+str(num)
    with open("phones.txt","w",encoding="utf-8") as f:
        f.write('\n'.join(user))

def flag0():
    alter(0)

def flag1():
    alter(1)

def flag2():
    alter(2)

def start():
    global x,y,index,phone
    x0,y0 = pg.position()
    lines = len(user)
    index = -1
    for i in user:
        index += 1
        if len(i)==11:break
    phone = user[index]
    if len(phone)>11:
        msgbox.showinfo('提示','手机号大于11位,或全部结束!')
    else:
        try:
            t = tList.curselection()[0]
            tList.select_clear(t,t)
        except: pass
        tList.select_set(index,index)
        pg.click(x-150,y)
        pg.typewrite('\b'*50)
        pg.typewrite(phone)
        pg.moveTo(x,y,duration=0.5)
        pg.click()
        pg.moveTo(x0,y0)

def main():
    '''written by hannyang 2021.10.16'''
    global tEntry,tList
    global user
    
    root = tk.Tk()
    root.geometry(f'375x323+{x+55}+{y-85}')
    root.resizable(False, False)
    root.title('《企业微信好友》')
    root.wm_attributes('-topmost',True)

    tEntry = tk.Entry(root,width=8)
    tEntry.place(x = 275, y = 270)
    tEntry.insert(0,'995,410')

    bt1 = tk.Button(root,text=' 定位 ',command = setpos)
    bt1.place(x = 220, y = 265)

    bt2 = tk.Button(root,text=' 开始 ',command = start)
    bt2.place(x = 30, y = 265)

    bt3 = tk.Button(root,text=' 标0 ',command = flag0)
    bt3.place(x = 80, y = 265)

    bt4 = tk.Button(root,text=' 标1 ',command = flag1)
    bt4.place(x = 125, y = 265)

    bt5 = tk.Button(root,text=' 标2 ',command = flag2)
    bt5.place(x = 170, y = 265)

    user = []
    try:
        with open('phones.txt', 'r', encoding='utf-8') as fn:
            users = fn.readlines()
        for usr in users:
            if usr[-1]=='\n': usr=usr[:-1]
            user.append(usr.strip())
    except:
        user = ['当前文件夹中phones.txt文件不存在!']
        
    tScroll=tk.Scrollbar(root, orient=tk.VERTICAL)
    tScroll.place(x=330,y=25,height=220)
    
    tList=tk.Listbox(root,selectmode=tk.BROWSE,yscrollcommand=tScroll.set)
    tList.place(x=30,y=25,width=300,height=220)
 
    for i in user:
        tList.insert(tk.END,i)
        
    tScroll.config(command=tList.yview)
    tList.select_set(0,0)
    root.update()
    tmp = list(set(user))
    diff = len(user)-len(tmp)
    if diff!=0:
        msgbox.showinfo('提示',f'存在{diff}个重复手机号!可忽略')
    root.mainloop()


if __name__ == '__main__':
    
    x,y = pg.size()
    x = (x - 390)//2 + 350
    y = (y - 360)//2 + 65
    
    main()

 注:代码倒数两三行中,390,360是被点窗口的大小,350,65用于定位坐标。

以下是保存电话的文本文件 phones.txt 的内容,手机号码已隐去:

Python 模仿按键精灵,批量验证和添加手机号码为企业微信账号的联系人「建议收藏」

运行

Python 模仿按键精灵,批量验证和添加手机号码为企业微信账号的联系人「建议收藏」

程序没有设置全自动的验证和添加,如果需要的话,则要把相关的按钮截图保存好.png图片,然后使用 pyautogui.locateCenterOnScreen() 等函数来定位,加上循环语句就能达成。

一起学习交流 Python 的群二维码地址: http://qr01.cn/FHYKEa

Python 模仿按键精灵,批量验证和添加手机号码为企业微信账号的联系人「建议收藏」

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139159.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • kali 更新源 更新软件包 更新系统 中科大源 官方源「建议收藏」

    kali 更新源 更新软件包 更新系统 中科大源 官方源「建议收藏」vim/etc/apt/sources.list1.添加源#kali官方源debhttp://http.kali.org/kalikali-rollingmainnon-freecontribdeb-srchttp://http.kali.org/kalikali-rollingmainnon-freecontrib#中科大的源debhttp://mirrors.ustc.edu.cn/kalikali-rollingmainnon-freecontribde.

    2022年5月8日
    61
  • 深度相机之TOF原理详解

    深度相机之TOF原理详解3D建模是VR领域的重要技术基础,而随着深度相机消费级别的普及,对3D建模在硬件支持方面迈出了很关键的一步,本文分享了TOF深度相机的原理,应用的领域,能很好的给读者一个全局的把握

    2022年5月26日
    45
  • JDK卸载和彻底删除

    JDK卸载和彻底删除第一步:点击“控制面板”。第二步:点击“卸载程序”。第三步:进入到“程序和功能”界面,找到jdk的两个程序:①java8update171(64-bit);②javaSEDevelopmentKit8update171(64-bit);右击卸载即可第四步:在“运行”中输入Regedit,打开注册表编辑器,找到HKEY_LOCAL_MACHINE/SOFTWARE/JavaSo…

    2022年6月30日
    41
  • c++实现简单的web服务器搭建

    c++实现简单的web服务器搭建本文使用c++socket编程进行简单的web服务器搭建,出来了GET请求

    2022年5月28日
    32
  • 特立独行的理解_特立独行的感觉

    特立独行的理解_特立独行的感觉原题链接对一个十进制数的各位数字做一次平方和,称作一次迭代。如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数。1 是一个幸福数。此外,例如 19 经过 1 次迭代得到 82,2 次迭代后得到 68,3 次迭代后得到 100,最后得到 1。则 19 就是幸福数。显然,在一个幸福数迭代到 1 的过程中经过的数字都是幸福数,它们的幸福是依附于初始数字的。例如 82、68、100 的幸福是依附于 19 的。而一个特立独行的幸福数,是在一个有限的区间内不依附于任何其它数字的;其独立性就是依附于它的的幸福数

    2022年8月9日
    4
  • vue子组件向父组件传值的三种方式_vue父页面传值到子页面

    vue子组件向父组件传值的三种方式_vue父页面传值到子页面1.用于子组件触发事件传递给父组件子组件:rowEvent里面也可以带参数事件treeData是携带的参数rowEvent(){this.$emit(‘rowEvent’,’treeData’’);},父组件:在父组件绑定自定义事件直接可以获取到rowEvents(obj){console.log(obj)},2.用ref(常用于不触发的事件)子组件定义个…

    2025年8月31日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号