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笔记(叁)继续学习
Oct 24 Python
Python中__init__和__new__的区别详解
Jul 09 Python
Python中字典的基础知识归纳小结
Aug 19 Python
Django返回json数据用法示例
Sep 18 Python
djano一对一、多对多、分页实例代码
Aug 16 Python
python中的split()函数和os.path.split()函数使用详解
Dec 21 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
Jan 16 Python
基于Python获取docx/doc文件内容代码解析
Feb 17 Python
在 Pycharm 安装使用black的方法详解
Apr 02 Python
Python常用库Numpy进行矩阵运算详解
Jul 21 Python
Python的Tqdm模块实现进度条配置
Feb 24 Python
Pandas实现DataFrame的简单运算、统计与排序
Mar 31 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
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
2007/01/29 PHP
PHP ? EasyUI DataGrid 资料取的方式介绍
2012/11/07 PHP
PHP 登录记住密码实现思路
2013/05/07 PHP
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
2014/07/05 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
2016/03/06 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
2016/03/22 PHP
PHP测试框架PHPUnit组织测试操作示例
2018/05/28 PHP
JS实现点击文字对应DIV层不停闪动效果的方法
2015/03/02 Javascript
AngularJS 遇到的小坑与技巧小结
2016/06/07 Javascript
jQuery css() 方法动态修改CSS属性
2016/09/25 Javascript
arcgis for js 修改infowindow样式的方法
2016/11/02 Javascript
Easyui使用Dialog行内按钮布局的实例
2017/07/27 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
Jquery cookie插件实现原理代码解析
2020/08/04 jQuery
Python中实现两个字典(dict)合并的方法
2014/09/23 Python
机器学习python实战之决策树
2017/11/01 Python
pygame游戏之旅 添加键盘按键的方法
2018/11/20 Python
python openCV实现摄像头获取人脸图片
2020/08/20 Python
Python利用matplotlib绘制散点图的新手教程
2020/11/05 Python
python爬取2021猫眼票房字体加密实例
2021/02/19 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
利用纯html5绘制出来的一款非常漂亮的时钟
2015/01/04 HTML / CSS
Otticanet美国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
留学推荐信怎么写
2014/01/25 职场文书
《小山羊和小灰兔》教学反思
2014/02/19 职场文书
大学班级文化建设方案
2014/05/06 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
车辆年检委托书范本
2014/10/14 职场文书
质检员岗位职责
2015/02/03 职场文书
汽车4S店前台接待岗位职责
2015/04/03 职场文书
大学学生会竞选稿
2015/11/19 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
PostGIS的安装与入门使用指南
2022/01/18 PostgreSQL
详解Mysql事务并发(脏读、不可重复读、幻读)
2022/04/29 MySQL