webForumDet fria alternativet

Byta bakgrundsbild i WIndows XP

Programmering

4 svar · 823 visningar · startad av Alpha II

Medlem sedan maj 20002 993 inlägg
Frågan#1

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. :(

Medlem sedan maj 20002 993 inlägg
#2

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;
Medlem sedan juni 2000350 inlägg
#3

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

Medlem sedan maj 20002 993 inlägg
#4

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

Medlem sedan maj 20002 993 inlägg
#5

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

255 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)