python生成可执行exe控制Microsip自动填写号码并拨打功能


Posted in Python onJune 21, 2021

控制的前提是已经运行Microsip.exe

  python生成可执行exe控制Microsip自动填写号码并拨打功能

首先选择文件,

选择txt格式文件,一行一个手机号格式;如下

python生成可执行exe控制Microsip自动填写号码并拨打功能

点击拨打下一个,就会自动输入自动拨打

python生成可执行exe控制Microsip自动填写号码并拨打功能

代码:

import tkinter
import win32gui
import win32con
from tkinter import filedialog
import tkinter.messagebox
import os
import time
def next_phone(phone):
    win = win32gui.FindWindow('MicroSIP',None)
    tid = win32gui.FindWindowEx(win,None,'#32770',None)
    tid = win32gui.FindWindowEx(tid,None,'ComboBox',None)
    tid = win32gui.FindWindowEx(tid,None,'Edit',None)
    win32gui.SendMessage(tid, win32con.WM_SETTEXT, None, phone)
    win32gui.PostMessage(tid,win32con.WM_KEYDOWN,win32con.VK_RETURN,0)
def openfile():
    sfname = filedialog.askopenfilename(title='选择txt文件', filetypes=[ ('All Files', '*')])
    return sfname
class MicroSIP:
    def __init__(self):
        self.c_window()
 
    def c_window(self):
        self.win = tkinter.Tk()
        self.win.geometry("300x280")
        self.win.resizable(width=False, height=False)
        self.win.protocol('WM_DELETE_WINDOW', self.customized_function)
        self.total = 0
        self.used = 0
        self.res = []
        self.Button1 = tkinter.Button(self.win, text="选择文件", command=self.helloCallBack)
        self.Button_next = tkinter.Button(self.win, text="拨打下一个", command=self.next)
        self.label1 = tkinter.Label(self.win, text="",)
        self.label2 = tkinter.Label(self.win, text="总量:", bg="yellow")
        self.label3 = tkinter.Label(self.win, text="拨打:", bg="red")
        self.label2_2 = tkinter.Label(self.win, text=self.total, )
        self.label3_3 = tkinter.Label(self.win, text=self.used, )
        # label4 = tkinter.Label(win, text="小猪佩奇", bg="green")
        self.Button1.grid(row=0, column=0)
        self.label1.grid(row=0, column=1)
        self.label2.grid(row=2, column=0)
        self.label2_2.grid(row=2, column=1)
        self.label3.grid(row=3, column=0)
        self.label3_3.grid(row=3, column=1)
        self.Button_next.grid(row=5, column=2)
        col_count, row_count = self.win.grid_size()
        for col in range(col_count):
            self.win.grid_columnconfigure(col, minsize=40)
        for row in range(row_count):
            self.win.grid_rowconfigure(row, minsize=40)
        self.win.mainloop()
    def next(self):
        if self.res:
            phone = self.res.pop()
 
            self.used+=1
            self.label3_3['text'] = self.used
            next_phone(phone.strip())
        else:
            res = tkinter.messagebox.showerror(title='文件!', message='选择文件啊!不然打鸡毛!')
    def helloCallBack(self):
        # print("Hello Python", "Hello Runoob")
        file_name = openfile()
        if file_name:
            print(file_name)
            self.label1['text']=file_name.split('/')[-1]
            with open(file_name, 'r', encoding='utf-8')as f:
                self.res = [x.replace('\n', '') for x in f.readlines()]
                self.total = len(self.res)
                self.label2_2['text']=str(len(self.res))
        else:
            res = tkinter.messagebox.showerror(title='文件!', message='选择文件啊!不然打鸡毛!')
    def customized_function(self):
 
        result = tkinter.messagebox.askyesno(title = '离开',message='确定要离开了吗?如没有打完,会把没打完的生成新文件,下次选择新文件就行了!')
        if result:
            if self.total==self.used:
                pass
            else:
                name = time.strftime("%Y_%m_%d_%H_%M_%S_", time.localtime())+"剩余_"+str(self.total-self.used)
                with open(name+'.txt','w',encoding='utf-8')as f:
                    for i in self.res:
                        f.write(i+'\n')
        self.win.destroy()
 
if __name__ == '__main__':
    MicroSIP()

写的比较简单,可以自己优化一下,需要安装pywin32库

打包一下,就可以生成 exe文件  

需要安装pyinstaller 库

命令 pyinstaller -F -w xxx.py

我生成好的exe可供下载:

链接: https://pan.baidu.com/s/1IAx0pgr4ze2jYusisQBXIA

提取码: a3s2

以上就是python生成可执行exe控制Microsip自动填写号码并拨打的详细内容,更多关于python生成可执行exe的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python常用列表数据结构小结
Aug 06 Python
Python中关于字符串对象的一些基础知识
Apr 08 Python
总结Python中逻辑运算符的使用
May 13 Python
Python3读取文件常用方法实例分析
May 22 Python
使用Python的Twisted框架编写非阻塞程序的代码示例
May 25 Python
Python实现按学生年龄排序的实际问题详解
Aug 29 Python
Python函数any()和all()的用法及区别介绍
Sep 14 Python
Python3爬虫使用Fidder实现APP爬取示例
Nov 27 Python
Python装饰器简单用法实例小结
Dec 03 Python
django中forms组件的使用与注意
Jul 08 Python
python实现键盘输入的实操方法
Jul 16 Python
如何基于python实现画不同品种的樱花树
Jan 03 Python
详解Python自动化之文件自动化处理
Jun 21 #Python
Python Pandas pandas.read_sql_query函数实例用法分析
Jun 21 #Python
Python Pandas pandas.read_sql函数实例用法
Jun 21 #Python
浅谈Python从全局与局部变量到装饰器的相关知识
Jun 21 #Python
Python-OpenCV教程之图像的位运算详解
Python中的套接字编程是什么?
教你如何使用Python开发一个钉钉群应答机器人
You might like
网站加速 PHP 缓冲的免费实现方法
2006/10/09 PHP
PHP中使用foreach()遍历二维数组的简单实例
2016/06/13 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
2017/09/29 PHP
通过jquery的$.getJSON做一个跨域ajax请求试验
2011/05/03 Javascript
Eval and new funciton not the same thing
2012/12/27 Javascript
js 回车提交表单两种实现方法
2012/12/31 Javascript
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
jQuery中校验时间格式的正则表达式小结
2013/09/22 Javascript
Nodejs全栈框架StrongLoop推荐
2014/11/09 NodeJs
每天一篇javascript学习小结(基础知识)
2015/11/10 Javascript
JS实现单击输入框弹出选择框效果完整实例
2015/12/14 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
VueJs与ReactJS和AngularJS的异同点
2016/12/12 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
2017/10/25 Javascript
微信小程序实现多选框功能的实例代码
2020/06/24 Javascript
Vue两种组件类型:递归组件和动态组件的用法
2020/08/06 Javascript
[02:56]DOTA2英雄基础教程 巨魔战将
2013/12/10 DOTA
[19:59]2014DOTA2国际邀请赛 IG战队纪录片
2014/08/07 DOTA
python读文件逐行处理的示例代码分享
2013/12/27 Python
Python实现图片转字符画的示例代码
2017/08/21 Python
Windows下Anaconda的安装和简单使用方法
2018/01/04 Python
Python 中包/模块的 `import` 操作代码
2019/04/22 Python
Python+Redis实现布隆过滤器
2019/12/08 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
浅析Python迭代器的高级用法
2020/07/16 Python
Python中return函数返回值实例用法
2020/11/19 Python
基于Django快速集成Echarts代码示例
2020/12/01 Python
html5音频_动力节点Java学院整理
2018/08/22 HTML / CSS
英国最大的奢侈珠宝和手表网站:C W Sellors
2017/02/10 全球购物
香港中原电器网上商店:Chung Yuen
2019/06/26 全球购物
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
应届大学生求职信
2013/12/01 职场文书
小学趣味运动会加油稿
2014/09/25 职场文书
2015年骨干教师工作总结
2015/05/26 职场文书
千与千寻观后感
2015/06/04 职场文书
将MySQL的表数据全量导入clichhouse库中
2022/03/21 MySQL