Python实现设置windows桌面壁纸代码分享
admin
2023-07-31 02:16:26
0

每天换一个壁纸,每天好心情。

# -*- coding: UTF-8 -*- 

from __future__ import unicode_literals
import Image
import datetime
import win32gui,win32con,win32api
import re
from HttpWrapper import SendRequest

StoreFolder = \"c:\\\\dayImage\"

def setWallpaperFromBMP(imagepath):
  k = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,\"Control Panel\\\\Desktop\",0,win32con.KEY_SET_VALUE)
  win32api.RegSetValueEx(k, \"WallpaperStyle\", 0, win32con.REG_SZ, \"2\") #2拉伸适应桌面,0桌面居中
  win32api.RegSetValueEx(k, \"TileWallpaper\", 0, win32con.REG_SZ, \"0\")
  win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,imagepath, 1+2)

def setWallPaper(imagePath):
  \"\"\"
  Given a path to an image, convert it to bmp and set it as wallpaper
  \"\"\"
  bmpImage = Image.open(imagePath)
  newPath = StoreFolder + \'\\\\mywallpaper.bmp\'
  bmpImage.save(newPath, \"BMP\")
  setWallpaperFromBMP(newPath)

def getPicture():
  url = \"http://photography.nationalgeographic.com/photography/photo-of-the-day/\"
  h = SendRequest(url)
  if h.GetSource():
    r = re.findall(\'

其中的httpwrapper是我写的一个http访问的封装:

#!/usr/bin/env python 
# -*- coding: UTF-8 -*-
#-------------------------------------------------------------------------------
# Name: 对http访问的封装
#
# Author: qianlifeng
#
# Created: 10-02-2012
#-------------------------------------------------------------------------------

import base64
import urllib
import urllib2
import time
import re
import sys

class SendRequest:
 \"\"\"
 网页请求增强类
 SendRequest(\'http://xxx.com\',data=dict, type=\'POST\', auth=\'base\',user=\'xxx\', password=\'xxx\')
 \"\"\"
 def __init__(self, url, data=None, method=\'GET\', auth=None, user=None, password=None, cookie = None, **header):
  \"\"\"
  url: 请求的url,不能为空
  date: 需要post的内容,必须是字典
  method: Get 或者 Post,默认为Get
  auth: \'base\' 或者 \'cookie\'
  user: 用于base认证的用户名
  password: 用于base认证的密码
  cookie: 请求附带的cookie,一般用于登录后的认证
  其他头信息:
  e.g. referer=\'www.sina.com.cn\'
  \"\"\"

  self.url = url
  self.data = data
  self.method = method
  self.auth = auth
  self.user = user
  self.password = password
  self.cookie = cookie

  if \'referer\' in header:
    self.referer = header[referer]
  else:
    self.referer = None

  if \'user-agent\' in header:
    self.user_agent = header[user-agent]
  else:
## self.user_agent = \'Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20100101 Firefox/8.0\'
    self.user_agent = \'Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16\'

  self.__SetupRequest()
  self.__SendRequest()

 def __SetupRequest(self):

  if self.url is None or self.url == \'\':
    raise \'url 不能为空!\'

  #访问方式设置
  if self.method.lower() == \'post\':
    self.Req = urllib2.Request(self.url, urllib.urlencode(self.data))

  elif self.method.lower() == \'get\':
    if self.data == None:
      self.Req = urllib2.Request(self.url)
    else:
      self.Req = urllib2.Request(self.url + \'?\' + urllib.urlencode(self.data))

  #设置认证信息
  if self.auth == \'base\':
    if self.user == None or self.password == None:
      raise \'The user or password was not given!\'
    else:
      auth_info = base64.encodestring(self.user + \':\' + self.password).replace(\'\\n\',\'\')
      auth_info = \'Basic \' + auth_info
      self.Req.add_header(\"Authorization\", auth_info)

  elif self.auth == \'cookie\':
    if self.cookie == None:
      raise \'The cookie was not given!\'
    else:
      self.Req.add_header(\"Cookie\", self.cookie)


  if self.referer:
    self.Req.add_header(\'referer\', self.referer)
  if self.user_agent:
    self.Req.add_header(\'user-agent\', self.user_agent)


 def __SendRequest(self):

  try:
   self.Res = urllib2.urlopen(self.Req)
   self.source = self.Res.read()
   self.code = self.Res.getcode()
   self.head_dict = self.Res.info().dict
   self.Res.close()
  except:
   print \"Error: HttpWrapper=>_SendRequest \", sys.exc_info()[1]


 def GetResponseCode(self):
  \"\"\"
  得到服务器返回的状态码(200表示成功,404网页不存在)
  \"\"\"
  return self.code

 def GetSource(self):
  \"\"\"
  得到网页源代码,需要解码后在使用
  \"\"\"
  if \"source\" in dir(self):
    return self.source
  return u\'\'

 def GetHeaderInfo(self):
  \"\"\"
  u\'得到响应头信息\'
  \"\"\"
  return self.head_dict

 def GetCookie(self):
  \"\"\"
  得到服务器返回的Cookie,一般用于登录后续操作
  \"\"\"
  if \'set-cookie\' in self.head_dict:
   return self.head_dict[\'set-cookie\']
  else:
   return None

 def GetContentType(self):
  \"\"\"
  得到返回类型
  \"\"\"
  if \'content-type\' in self.head_dict:
   return self.head_dict[\'content-type\']
  else:
   return None

 def GetCharset(self):
  \"\"\"
  尝试得到网页的编码
  如果得不到返回None
  \"\"\"
  contentType = self.GetContentType()
  if contentType is not None:
    index = contentType.find(\"charset\")
    if index > 0:
      return contentType[index+8:]
  return None

 def GetExpiresTime(self):
  \"\"\"
  得到网页过期时间
  \"\"\"
  if \'expires\' in self.head_dict:
   return self.head_dict[\'expires\']
  else:
   return None

 def GetServerName(self):
  \"\"\"
  得到服务器名字
  \"\"\"
  if \'server\' in self.head_dict:
   return self.head_dict[\'server\']
  else:
   return None

__all__ = [SendRequest,]

if __name__ == \'__main__\':
  b = SendRequest(\"http://www.baidu.com\")
  print b.GetSource()

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...