---
title: "Byta bakgrundsbild i WIndows XP"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/84503-byta-bakgrundsbild-i-windows-xp"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "Alpha II"
published: "2003-08-26T15:35:30.000Z"
updated: "2003-08-27T11:13:59.000Z"
replies: 4
views: 841
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/84503-byta-bakgrundsbild-i-windows-xp"
---

# Byta bakgrundsbild i WIndows XP

## #1 — Alpha II, 2003-08-26T15:35Z

Hur ändrar jag bakgrundsbilden i Windows XP? Inget verkar fungera. Det närmaste jag har kommit är att bakgrundsbilden försvunnit när jag använt funktionen SYtemParametersInfo(). Hittade en kod som använde com men programmet kraschade med den. :(

Permalänk: https://www.webforum.nu/p/84503

## #2 — Alpha II, 2003-08-26T16:59Z

Jag har läst att man måste använda com i nyare windows. :OO

Försöker med en värdelös exempel kod med massa onödiga variabler och saknade viktiga bitar för att fungera.

Får meddelandet 
Exception EIntfCastError in module program.exe at 000554B5
Interface not supported.

```
function ChangeWallpaper(aFile: String): Boolean;
const
  CLSID_ActiveDesktop: TGUID = '{75048700-EF1F-11D0-9888-006097DEACF9}';
var
  hObj: IUnknown;
  ADesktop: IActiveDesktop;
  str: string;
  wstr: PWideChar;
begin
  CoInitializeEx(nil,0);
  hObj     := CreateComObject(CLSID_ActiveDesktop);
  ADesktop := hObj as IActiveDesktop; // IActiveDesktop blir markerat när jag får exceptionet
  wstr := AllocMem(MAX_PATH);
  try
    StringToWideChar(aFile, wstr, MAX_PATH);
    ADesktop.SetWallpaper(wstr, 0);
    ADesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE);
  finally
    FreeMem(wstr);
  end;
end;
```

Permalänk: https://www.webforum.nu/p/1140390

## #3 — jt, 2003-08-27T06:19Z

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, pChar('Bubblor.bmp'), SPIF_SENDCHANGE);

Detta borde fungera om det nu inte är något särskilt med XP. Det verkar inte finnas något undantag för XP enlig dokumantationen.

<http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/systemparametersinfo.asp>

Permalänk: https://www.webforum.nu/p/1140596

## #4 — Alpha II, 2003-08-27T11:11Z

Har testat det och det enda som verkar hända är att bakgrunsbilden tas bort. Kräver funktionen att det är en bmp fil?

Permalänk: https://www.webforum.nu/p/1140728

## #5 — Alpha II, 2003-08-27T11:13Z

Ja det funkade :) Konverterade min jpg fil till en bmp fil och nu funkar det hur bra som helst :D

Permalänk: https://www.webforum.nu/p/1140732

---

Tråden på webben: https://www.webforum.nu/amne/programmering/84503-byta-bakgrundsbild-i-windows-xp
