zoukankan      html  css  js  c++  java
  • 每日设置Bing首页图片为壁纸

      看腻了每日一成不变的壁纸,希望每天都能有个未知的壁纸可以期待。

          所以我打算做一个小工具来实现此目的。

      于是乎便有了本文。

      本文大代码是从几个地方搜索,然后组合的。

      我所做的工作就是:

        1. 将网上的Python3的代码修改成Python2的;

        2. 改变下载的Bing首页图片的命名规则,防止图片大量重复和日后查找;

        3. 将下载壁纸和设置壁纸的代码组合在一起

        4. 用Py2exe打包成可执行文件

        5. 将可执行文件的快捷方式设置为开机启动

      结果:每一次开机,程序都会自动将Bing首页的图片下载下来并设置为壁纸。

      推广:可以自己建立一个图片文件夹存放收藏的图片,定时更换图片文件夹中的图片为壁纸。

      

      其中设置开机自动运行是将程序的快捷键方式放到  “开始” 目录下的 ”启动“文件夹内。

      一台windows往往不止有一个这也的 “启动文件夹”,因很多电脑不止有一个用户。

      ...AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup

      或者

      C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp

      在设置壁纸部分,用到了Image模块。这是它的下载地址,

      http://www.pythonware.com/products/pil/

      下载好后只需要点击exe即可安装Image。

      完整代码:

      

    # -*- coding: utf-8 -*-
    
    import urllib
    import os  
    import time
    
    url = 'http://cn.bing.com'  
    urlFile = urllib.urlopen(url)  
    data = urlFile.read()  
    urlFile.close()  
    data = data.decode('utf-8',errors='ignore')  
      
    pre = u'g_img={url: "'  
    urlstart = data.find(pre) + len(pre)  
    urlend = data.find(u'",id:', urlstart)  
    imgUrl = data[urlstart : urlend]  
      
    preImg = u'<a id="sh_cp" class="sc_light" title="'  
    imgnameStart = data.find(preImg) + len(preImg)  
    imgnameend = data.find('" alt="', imgnameStart)  
    #print("start:"+str(imgnameStart))  
    #print("end:"+str(imgnameend))  
    imgName = data[imgnameStart : imgnameend] 
    #imgName=imgName.replace("©".encode("utf-8"),"")  
    imgName=imgName.replace("/"," ")  
    
    now_time = [ i for i in time.localtime()] # 获取时间
    # 以下载时间为文件名
    tmp_name = str(now_time[0]) + str(now_time[1]) + str(now_time[2])
    imgName="F:\BingImageForWallpaper\" + tmp_name  +u'.jpg' 
    
    print("imgUrl: " + imgUrl)  
    print("imgName: " + imgName )  
    
    
    print('Download image......')  
    urllib.urlretrieve(imgUrl, imgName)  
    print('Download complete')  
    #os.startfile(imgName)  
    
    
    ################################################################
    ##      以上为下载Bing首页图片部分,以下为设置壁纸部分        ##
    ################################################################
      
    import Image  
    import win32api,win32con,win32gui  
    import re,os  
      
    def set_wallpaper_from_bmp(bmp_path):  
        #打开指定注册表路径  
        reg_key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\Desktop",0,win32con.KEY_SET_VALUE)  
        #最后的参数:2拉伸,0居中,6适应,10填充,0平铺  
        win32api.RegSetValueEx(reg_key, "WallpaperStyle", 0, win32con.REG_SZ, "2")  
        #最后的参数:1表示平铺,拉伸居中等都是0  
        win32api.RegSetValueEx(reg_key, "TileWallpaper", 0, win32con.REG_SZ, "0")  
        #刷新桌面  
        win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,bmp_path, win32con.SPIF_SENDWININICHANGE)  
      
    def set_wallpaper(img_path):  
        #把图片格式统一转换成bmp格式,并放在源图片的同一目录  
        img_dir = os.path.dirname(img_path)  
        bmpImage = Image.open(img_path)  
        new_bmp_path = os.path.join(img_dir,'wallpaper.bmp')  
        bmpImage.save(new_bmp_path, "BMP")  
        set_wallpaper_from_bmp(new_bmp_path)  
      
    if __name__ == '__main__':  
        set_wallpaper(imgName)  
        import sys
        sys.exit()
    

      2016-11-30

      

  • 相关阅读:
    ReentrantReadWriteLock锁例子
    线程安全的atomic wrapper classes例子
    统一处理jquery ajax请求过程中的异常错误信息的机制
    理解RESTful架构
    适配器模式的两种实现方式
    第一部分:开发前的准备-第一章 什么是Andorid
    cocos2d-x开发记录:二,基本概念(骨骼动画)
    cocos2d-x开发记录:二,基本概念(粒子系统,Scheduler和定时器)
    cocos2d-x开发记录:二,基本概念(导演,场景,层和精灵,场景切换,效果)
    cocos2d-x开发记录:二,基本概念(动作,动画,坐标系统)
  • 原文地址:https://www.cnblogs.com/zhangte/p/6119197.html
Copyright © 2011-2022 走看看