微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

墙壁换纸器工作不正常

我是Python的新手,当我制作一个程序时,我遇到了一个问题,那就是将我的背景改为国家地理日常图片。 它获得了JPEG的path很好,但是当我使用命令来改变桌面背景(对于Windows),它只是将背景改为纯黑色。 代码本身不会抛出任何错误,它只是不工作如何伤口想要它。 这是代码

import urllib2 import ctypes SPI_SETDESKWALLPAPER = 20 url = urllib2.urlopen("http://photography.nationalgeographic.com/photography/photo-of-the-day/") code = url.readlines() pos = code[1303].split(""",2) imgurl = pos[1] print imgurl ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER,imgurl,0)

是否有可能以编程方式更改用户的屏幕保护程序和/或桌面背景?

如何根据windows版本设置壁纸风格(填充,拉伸)

检测多个显示器并为每个设置单独的壁纸

用Win API设置壁纸

在系统中为用户更换Python中的壁纸

您似乎将URL传递到设置的壁纸命令,而不是图像的路径。 首先获取图像。 试试这个,而不是。

import urllib2 import ctypes SPI_SETDESKWALLPAPER = 20 url = urllib2.urlopen("http://photography.nationalgeographic.com/photography/photo-of-the-day/") code = url.readlines() pos = code[1303].split(""",2) imgurl = pos[1] print imgurl # Changes after here url2 = urllib2.urlopen(imgurl) out = open("wallpaper.jpg","wb") out.write(url2.read()) out.close() ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER,"wallpaper.jpg",0)

我没有真的试过(不在Windows上运行),所以也许它会解决这个问题,也许不会!

PS这是真正脆弱的代码解析的网址,但得到它的工作的声誉!

你用来解析url的代码确实非常脆弱。 你会更好地使用正则表达式。 这个正则表达式搜索包含图像的独特的div,然后删除除url以外的所有东西。

此外,使用with打开文件更好,因为它会自动关闭文件

改进的代码将是:

import urllib2 import ctypes import re SPI_SETDESKWALLPAPER = 20 url = urllib2.urlopen("http://photography.nationalgeographic.com/photography/photo-of-the-day/") code = url.read() imgurl = re.sub(r'(.|n)+?<div class="primary_photo">(.|n)+?<img src="(.+?)"(.|n)+',r'3',code) print imgurl url2 = urllib2.urlopen(imgurl) with open("wallpaper.jpg","wb") as f: f.write(url2.read()) ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER,0)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐