import ctypes
import time
import requests
import os
from threading import Thread
from tkinter import Tk, Label, Button,Entry,StringVar,messagebox
# r'C:\Users\86156\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup'
# '放到AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup下把本文件后缀设为pyw 就会开机自启'
class Bz(object):
    def __init__(self):
        self.curent_url = 'https://tenapi.cn/img/acg.php'
        self.root = Tk()
        self.root.attributes("-alpha", 0.8)
        self.root.title('Python学习交流群:127341871')
        self.root.geometry('218x55+1300+20')
        self.b1 = Button(self.root, text=' 换一类 ', command=self.change_type, fg='#00f235',width=8).place(x=0, y=0)
        self.b2 = Button(self.root, text='下一张>>  频率(分)', command=self.change_next, fg='blue',width=22).place(x=63, y=0)
        self.b3 = Button(self.root, text='停止切换', command=self.stop, fg='red', width=8).place(x=0, y=30)
        self.label = Label(self.root, text='二次元',fg='#9e3dff')
        self.label.place(x=85, y=30)
        e = StringVar()
        self.input=Entry(self.root,textvariable=e,fg='#ffaf0a')
        e.set(0.1)       #默认0.1分钟   6s
        self.input.place(x=153, y=30)
        self.url_list = {1: ['影视', 'http://pic.tsmp4.net/api/yingshi/img.php'],
                         2: ['随机', 'http://lorempixel.com/1920/1080/'],
                         3: ['女神', 'http://pic.tsmp4.net/api/nvsheng/img.php'],
                         4: ['风景', 'http://pic.tsmp4.net/api/fengjing/img.php'],
                         5: ['二次元', 'https://tenapi.cn/img/acg.php']}
        self.path = 'D:\壁纸'
        self.filepath = self.path + '/img.jpg'
        if not os.path.exists(self.path):
            os.makedirs(self.path)
        self.flag = True
        self.start = 1

    def stop(self):
        self.flag = False

    def change_type(self):
        if self.start > 5:
            self.start = 1
        list = self.url_list.get(self.start)
        curent_type = list[0]
        self.curent_url = list[1]
        self.label['text'] = curent_type
        self.start += 1

    def change_next(self):
        data = requests.get(url=self.curent_url).content
        with open(self.filepath, 'wb') as f:
            f.write(data)
        self.config()

    def get_img(self):
        try:
            self.num = eval(self.input.get()) * 60  #捕获结束界面后的异常
        except Exception:
            pass
        try:
            data = requests.get(url=self.curent_url).content
            with open(self.filepath, 'wb') as f:
                f.write(data)
            time.sleep(self.num)       # 睡眠单位秒
            self.config()
        except Exception:
            pass

    def config(self):
        ctypes.windll.user32.SystemParametersInfoW(20, 0, self.filepath, 0)  # 设置桌面壁纸.

    def img(self):
        while self.flag:
            self.get_img()

    def run(self):
        t1 = Thread(target=self.img)
        # t1.setDaemon(True)           #设置守护线程 --->是否完全关闭
        t1.start()
        self.root.mainloop()
        if self.flag:
            root = Tk()
            root.withdraw()
            messagebox.showinfo("Python学习交流群:127341871", "只关闭了界面! 图片还在切换! 请进入任务管理器结束进程")
if __name__ == '__main__':
    b = Bz()
    b.run()

  

创意编程,Python开发多功能壁纸自动切换工具!的更多相关文章

  1. TriAquae 是一款由国产的基于Python开发的开源批量部署管理工具

    怀着鸡动的心情跟大家介绍一款国产开源运维软件TriAquae,轻松帮你搞定大部分运维工作!TriAquae 是一款由国产的基于Python开发的开源批量部署管理工具,可以允许用户通过一台控制端管理上千 ...

  2. pip:带你认识一个 Python 开发工作流程中的重要工具

    摘要:许多Python项目使用pip包管理器来管理它们的依赖项.它包含在Python安装程序中,是Python中依赖项管理的重要工具. 本文分享自华为云社区<使用Python的pip管理项目的依 ...

  3. python开发_tkinter_菜单选项中英文切换_菜单选项不可用操作_博主推荐

    我使用的python版本为:3.3.2 如果你对python中tkinter模块的菜单操作不是很了解,你可以看看: python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推 ...

  4. Ubuntu 设定壁纸自动切换的shell脚本

    升级到Ubuntu14.04后,感觉bug的确比12.04少多了.顶部任务栏支持半透明效果,所以整个桌面也看上去漂亮了很多.这样的桌面也是值得瞎捣鼓一下的,想到换壁纸,但是没找到设定动态更换壁纸的选项 ...

  5. python开发必备神器 Virtualenv及管理工具Virtualenvwrapper

    如果在一台机器上,想开发多个不同的项目,需要用到同一个包的不同版本,如果还在本地继续安装,在同一个目录下安装或者更新,其它的项目必须就无法运行了,怎么办呢? 解决方案:虚拟环境 虚拟环境可以搭建独立的 ...

  6. python开发_platform_获取操作系统详细信息工具

    ''' python中,platform模块给我们提供了很多方法去获取操作系统的信息 如: import platform platform.platform() #获取操作系统名称及版本号,'Win ...

  7. js轮播功能 标签自动切换 同页面多轮播js

    需要加入jquery 1.43及以上版本 下面还有个简单版,一个页面只支持一个轮播 同页面多轮播js <div> <div class="yt_content"& ...

  8. iOS开发之实现图片自动切换(类似android画廊效果)

    #import ViewController.h #define ImageViewCount 5   @interface ViewController ()<uiscrollviewdele ...

  9. Python开发【第一篇】:目录

    本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! Python开发[第一篇]:目录 Python开发[第二篇]:初识Python ...

随机推荐

  1. RSA加解密&RSA加验签详解

    RSA 加密算法是目前最有影响力的 公钥加密算法,并且被普遍认为是目前 最优秀的公钥方案 之一.RSA 是第一个能同时用于 加密 和 数字签名 的算法,它能够 抵抗 到目前为止已知的 所有密码攻击,已 ...

  2. 并发编程~~~多线程~~~线程queue, 事件event,

    一 线程queue 多线程抢占资源,只能让其串行. 互斥锁 队列 import queue q = queue.Queue() # 先进先出 q = queue.LifoQueue() # 先进后出 ...

  3. 2019/12/10学习内容摘要(Linux文件和目录管理)

    1.绝对路径和相对路径 *绝对路径:路径的写法一定是由根目录 / 写起的,例如 /usr/local/mysql *相对路径:路径的写法不是由根目录 / 写起的,例如 首先用户进入到 /home,然后 ...

  4. 09. Go 语言并发

    Go 语言并发 并发指在同一时间内可以执行多个任务.并发编程含义比较广泛,包含多线程编程.多进程编程及分布式程序等.本章讲解的并发含义属于多线程编程. Go 语言通过编译器运行时(runtime),从 ...

  5. 【使用篇二】Lombok的介绍与使用(16)

    Lombok通过简单注解来实现精简代码来达到消除冗长代码的目的.它能够提高编码效率.使代码更简洁.消除冗长代码.避免修改字段名时忘记修改方法名. 一.Lombok注解 Lombok主要常用的注解有: ...

  6. python爬取网页数据

    一.利用webbrowser.open()打开一个网站: ? 1 2 3 >>> import webbrowser >>> webbrowser.open('ht ...

  7. Mac-无法进入mysql,你这样做就对了

    mysql -uroot -p 输入密码之后报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwo ...

  8. 【ES6学习笔记之】Object.assign()

    基本用法 Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target). const target = { a: 1 }; const sou ...

  9. 发布一个简单的npm包

    本文简单地记录了发布一个简单npm包的过程,以便后续参考使用. 初始化npm init 通过npm init创建一个package.json文件 D:\robin\lib\weapp-utils> ...

  10. CAD转DXF怎么转换?教你三种转换方法

    CAD图纸在我们日常生活中都是可见到的,因为CAD图纸文件的格式是多样的,在工作中就需要经常将CAD的格式进行转换.那CAD转DXF怎么转换呢?这个问题很多的小伙伴们都遇到过,下面小编就来教大家三种转 ...