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 GAE、Django导出Excel的方法
Nov 24 Python
Python类的定义、继承及类对象使用方法简明教程
May 08 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
Mar 22 Python
Python批量合并有合并单元格的Excel文件详解
Apr 05 Python
Python实现两个list求交集,并集,差集的方法示例
Aug 02 Python
树莓派安装OpenCV3完整过程的实现
Oct 10 Python
python自动化测试之异常及日志操作实例分析
Nov 09 Python
Python netmiko模块的使用
Feb 14 Python
Python pip安装模块提示错误解决方案
May 22 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
Aug 03 Python
详解Anaconda 的安装教程
Sep 23 Python
Pandas替换及部分替换(replace)实现流程详解
Oct 12 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显示Facebook的粉丝数量方法
2014/01/08 PHP
php实现的简单中文验证码功能示例
2017/01/03 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
2019/04/02 PHP
nicejforms——美化表单不用愁
2007/02/20 Javascript
学习ExtJS Column布局
2009/10/08 Javascript
基于jquery的横向滚动条(滑动条)
2011/02/24 Javascript
js调用后台、后台调用前台等方法总结
2014/04/17 Javascript
jQuery中[attribute]选择器用法实例
2014/12/31 Javascript
JavaScript判断页面加载完之后再执行预定函数的技巧
2016/05/17 Javascript
Google 地图API Map()构造器详解
2016/08/06 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
2016/10/09 Javascript
给Easyui-Datebox设置隐藏或者不可用的解决方法
2017/05/26 Javascript
详解使用Next.js构建服务端渲染应用
2018/07/10 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
2018/08/08 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
详解微信小程序轨迹回放实现及遇到的坑
2021/02/02 Javascript
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
Python常用模块用法分析
2014/09/08 Python
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
如何使用python操作vmware
2019/07/27 Python
Python3简单爬虫抓取网页图片代码实例
2019/08/26 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
django使用F方法更新一个对象多个对象字段的实现
2020/03/28 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
CSS实现进度条和订单进度条的示例
2020/11/05 HTML / CSS
HTML5的postMessage的使用手册
2018/12/19 HTML / CSS
水上运动奥特莱斯:Wasterports Outlet
2018/08/08 全球购物
写给保洁员表扬信
2014/01/08 职场文书
婚假请假条怎么写
2014/04/10 职场文书
假面舞会策划方案
2014/05/29 职场文书
反四风对照检查材料
2014/09/22 职场文书
2014感恩节演讲稿大全
2014/10/11 职场文书
营销计划书范文
2015/01/17 职场文书
观看焦裕禄观后感
2015/06/09 职场文书
三好学生竞选稿
2015/11/21 职场文书
MySQL 原理与优化之Limit 查询优化
2022/08/14 MySQL