zmiana tapety pulpitu przez delphi

0

Mam pytanie jak zmienic tapetę pulpitu przez moj program w delphi, w edit podawalbym lokalizacje obrazka a w Buttonie akceptowalbym.

0

Spojrzyj do FAQ, tam jest to opisane.

0

tylko, ze procedura z faq dziala tylko na bitmapy
uzyj tej:

uses
ShlObj, ComObj;

function ChangeWallpaper(aFile: String): Boolean;
const
CLSID_ActiveDesktop: TGUID = '{75048700-EF1F-11D0-9888-006097DEACF9}';
var
hObj: IUnknown;
ADesktop: IActiveDesktop;
str: string;
wstr: PWideChar;
begin
hObj := CreateComObject(CLSID_ActiveDesktop);
ADesktop := hObj as IActiveDesktop;
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;

kod pochodzi z http://www.swissdelphicenter.ch/torry/showcode.php?id=75

0

mozna tez tak:

procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s:=edit1.text;
SystemParametersInfo(SPI_SETDESKWALLPAPER,0, PChar(s),
SPIF_UPDATEINIFILE or SPIF_SENDWININICHANGE);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
OpenDialog1.Execute;
if(OpenDialog1.FileName'') Then
edit1.text:=(OpenDialog1.FileName);
end;

end.

0

tylko, ze procedura z faq dziala tylko na bitmapy

A problem jpg zapisać jako bitmapę?

0

tylko, ze procedura z faq dziala tylko na bitmapy

A problem jpg zapisać jako bitmapę?

nie problem, ale jpg sa glownie wykorzystywane do active desktop

0

Ja dalej uparcie będę obstawał przy swoim :-P. W win 95 nie ma np. czegoś takiego jak active desktop. Po drugie, trzeba dodawać dwa dodatkowe moduły, które zwiększają objętość programu, a przy konwersji wystarczy jeden. Po trzecie, jakoś nie ufam kodom, które wykorzystują jakieś obiekty com, korzystają z zarejestrowanych klas, itd. Wydaje mi sie to lekko niepewne i nie jestem pewny, czy zadziała na wszystkich systemach. To by było na tyle moich wywodów. Oczywiście rób, jak uwazasz, ale mi sie wydaje, że najlepsze są proste rozwiązania :).

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