Jak za pomącą polecenia:
SystemParametersInfo(SPI_SETDESKWALLPAPER,0,PChar(nazwa.pliku),SPIF_SENDCHANGE)
lub jakiegoś innego utawić tapetę z jotpega, gifa itp bo osługuje tylko bmp.
Normalnie trzeba włączyć Active Desktop, ale jak to zrobić z Delphi?
Active Desktop włącza się wymuszając go w rejestrze (To nie jest reguła, ale za pomocą Delphi jest tak najszybciej i najwygodniej).
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Desktop\General
Masz tam wartośc Wallpaper
Teraz wystarczy napisać w delphi procedurkę :P
lepiej moim zdaniem byłoby konwertować na bmp i dopiero ustawiać tapetę bo jakby mi jakiś program ustawił Active Desktop to bym chyba zamordował :) (teraz mam XP to to mnie nie dotyczy, ale na innych kompach mam ME).
lepiej moim zdaniem byłoby konwertować na bmp
A co jeśli masz animowanego gifa ? A takie też da sie ustawic na tapete :) .
"Pobawić" się interfejsem IActiveDesktop
Ja bym to zrobił tak:
procedure SetWallPaper(filename:string);
var
JPEG:TJpegImage;
Gif:TGifImage;
Bmp:TBitmap;
ext:string;
begin
Bmp:=TBitmap.Create;
ext:=ExtractFileName(filename);
if ((ext='.jpg')or(ext='.jpeg')) then
begin
Jpeg:=TJpegImage.Create;
Jpeg.LoadFromFile(filename);
Bmp.Assign(Jpeg);
Jpeg.Free;
end
else if ext='.gif' then
begin
Gif:=TGifImage.Create;
Gif.LoadFromFile(filename);
Bmp.Assign(Gif);
Gif.Free;
end
else if ext='.bmp' then
begin
Bmp.LoadFromFile(filename);
end;
SystemParametersInf(...
end;
No i to by było na tyle ;)
Thanx za ort!. Kombinowania było od cho... (dużo), ale już działa. Dzięki.