Tapeta JPG zamiast BMP

0

Mam takowy problem: robię przeglądarkę plików graficznych i chcę zrobić opcję, aby mozna było oglądany obraz ustawić jako tapetę, można zrobić to tak:

systemparametersinfo(SPI_setdeskwallpaper,0,"Nazwa pliku",SPIF_UPDATEINIFILE);

ale to mnie nie zadowala, ponieważ wtedy można tylko *.bmp ustawić, próbowałem coś z rejestrem:
Kod:
(Label1.caption:=lokalizacja oglądanego pliku graf.)

var
Reg : TRegistry; // zmienna wskazuje na rejestr
begin
Reg := TRegistry.Create;
try
Reg.OpenKey('Control Panel\Desktop', True);
Reg.WriteString('Wallpaper', Label1.Caption);
Reg.WriteString('ConvertedWallpaper', Label1.Caption);
Reg.WriteString('OriginalWallpaper', Label1.Caption);
finally
Reg.Free; // zwolnij pamięć
end;

Czytałem gdzieś że tak niby będzie działąć, ale trzeba zrestartować lub wylogować się i wtedy ono odczyta z rejestru. Czy jest jakaś metoda, aby odświeżyć rejestr?

A tak przy okazji to po co jest to wpisane w regedicie w tych polach "C:\Documents and Settings\marcoo\Ustawienia lokalne\Dane aplikacji\Microsoft\Wallpaper1.bmp" - pisze tak niezależnie od nazwy i rodzaju(jpg,bmp,itp) tapety.
Proszę o pomoc bo to jest program na konkurs a termin sie zbliża.....3 dni

//UPDATE

Może to się do czegś nada?

uses
ComObj, ShlObj;
const
CLSID_ActiveDesktop: TGUID = '{75048700-EF1F-11D0-9888-006097DEACF9}';

//setzen des neuen Hintergrundbildes (bmp, jpg)
procedure TForm1.Button1Click(Sender: TObject);
var
ActiveDesktop : IActiveDesktop;
begin
ActiveDesktop := CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop;
ActiveDesktop.SetWallpaper('F:\Media\Wallpaper\092.jpg', 0);
ActiveDesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE);
end;

ale tam gdzie jest
Kod:
'F:\Media\Wallpaper\092.jpg'
ja potrzebuję wstawić Label1.caption jako string i można to sformatować w taki sposób PWideChar(Label1.caption) ale to nic nie daje. Co dalej z tym można zrobić?``

0

byyyyloooo[!!!]
Konwersja na BMP+ustawianie BMP jako tapety.

0

a co do tematu.....to tapeta w formacie BMP jest lepsza od JPG'a.....zdaje ci się że JPG mniej zajmuje.....to złuda....to jest format skompresowany, więc przed klejeniem na tapety i tak będzie poddany dekompresji.

A poza tym włączy się ActiveDesktop....

a właśnie.....możesz przecież używając ActiveDesktop'a wkleić rys na tapete.....sorry, ale nie znam na to funkcji, ale jakaś musi być

1 użytkowników online, w tym zalogowanych: 0, gości: 1