更改桌面背景的python代码给出了黑屏

时间:2016-06-05 22:59:07

标签: python-3.x

我看过其他问题,但他们仍然没有解决这个问题。这两个python代码下面只是给出一个黑屏。我做错了什么。

import ctypes
SPI_SETDESKWALLPAPER = 20
SPIF_SENDCHANGE = 2
SPIF_UPDATEINIFILE = 1
ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, SPIF_UPDATEINIFILE, "C:\\Users\Jason\Documents\Python and stuff\Image.bmp" , SPIF_SENDCHANGE)

import ctypes
SPI_SETDESKWALLPAPER = 20
ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, "C:\\Users\Jason\Documents\Python and stuff\Image.bmp" , 0)

3 个答案:

答案 0 :(得分:1)

所以问题在于您的链接。有两个问题:

  1. “\”是一个转义字符。所以要实际写一个反斜杠,你需要有一个双黑色。
  2. 您有“C:\”,但实际链接需要“C:\”。但这部分是正确的,因为双反斜杠是一个代码。
  3. 如果我不是很清楚,这就是这条线: “C:\ Users \ Jason \ Documents \ Python和stuff \ Image.bmp”

答案 1 :(得分:1)

如果你现在还没有找到答案,你可以使用:

import win32api, win32con, win32gui, random, time

def SetWallPaper(path):
    key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,
                                "Control Panel\\\\Desktop",
                                0,win32con.KEY_SET_VALUE)
    win32api.RegSetValueEx(key, "WallpaperStyle", 0, win32con.REG_SZ, "0")
    win32api.RegSetValueEx(key, "TileWallpaper", 0, win32con.REG_SZ, "0")
    win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, path, 1+2)

path = r"C:\\Users\Jason\Documents\Python and stuff\Image.bmp"
SetWallPaper(path)

如果你在文件路径python的开头放一个r,就不要将\视为转义字符而只是保持不变。你正在获得黑屏,因为根据python,你的路径并不存在。或者,如果你不喜欢r方法,那么你可以加倍斜杠\\

希望这有助于:)

答案 2 :(得分:0)

很晚了,阿伦特一世? 好吧,无论如何,这段代码应该可以工作!

import win32api
import win32gui
import win32con

def wallpaper(path):
    key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE)
    win32api.RegSetValueEx(key, "WallpaperStyle", 0, win32con.REG_SZ, "0")
    win32api.RegSetValueEx(key, "TileWallpaper", 0, win32con.REG_SZ, "0")
    win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, path, 1+2)

wallpaper('C:\\Users\\Jason\\Documents\\Python and stuff\\Image.bmp')