Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi JPG als Desktop-Wallpaper? (https://www.delphipraxis.net/26000-jpg-als-desktop-wallpaper.html)

Dannyboy 16. Jul 2004 10:05


JPG als Desktop-Wallpaper?
 
Hey yo fellaz,
ich weiss, wir hatten dieses Thema schon 100000000 Mal. Ich würde gern den Desktop-Hintergrund
programmtechnisch ändern, wobei die Methode auch JPGs annehmen können soll. SystemParametersinfo
funktioniert nur mit BMPs. Ich könnte natürlich jedes JPG im Programm zu einem Bitmap konvertieren
und dann die Methode aufrufen, aber gibt es nicht einen praktischeren Weg :gruebel:

Thanx a lot, boyz.

DANNYOBOY

sakura 16. Jul 2004 10:08

Re: JPG als Desktop-Wallpaper?
 
Das hängt von der Windows-Version ab. Imho können nur XP und 2003 JPGs als einfache Hintergrundbilder anzeigen, auf älteren Systemen muss der grausame Active Desktop dafür aktiviert werden :?

...:cat:...

Alexander 16. Jul 2004 10:10

Re: JPG als Desktop-Wallpaper?
 
Ich meine das funktioniert so:
Delphi-Quellcode:
function ChangeWallpaper_AD(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;
Nur bin ich mir gerade nicht sicher, ob das JPEG's unterstützt, glaube aber schon.

Dannyboy 16. Jul 2004 10:15

Re: JPG als Desktop-Wallpaper?
 
Yo,
ich habe XP Prof drauf.
@Alexander:
Geht das nicht ohne ActiveDesktop :gruebel:

gothic_mike 16. Jul 2004 10:28

Re: JPG als Desktop-Wallpaper?
 
Zitat:

Zitat von Dannyboy
Yo,
ich habe XP Prof drauf.
@Alexander:
Geht das nicht ohne ActiveDesktop :gruebel:

Also, die meisten Tools (IrfanView, ACDView...), die das Hintergrundbild änder, konvertieren die JPG's, PNG's etc. erst in ein Bitmap, meist im Windows-Ordner, befor sie es alls Wallpaper setzen...
Wird imho kein Weg dran vorbei führen.

Zwecks Konvertierung von Bildern kannst dir ja mal die ImageFileLib von dieser Seite angucken: http://logicnet.dk/lib ...

Alexander 16. Jul 2004 10:47

Re: JPG als Desktop-Wallpaper?
 
Ich weiß jetzt nicht in wie fern, das mit JPEG's klappt, aber ich meine nicht:
Delphi-Quellcode:
function ChangeWallpaper(aFile: String): Boolean;
begin
  SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, Pointer(afile),
    SPIF_SENDWININICHANGE);
end;
Aber was hast du gegen den Active Desktop, ich habe ihn bei XP einfach angelassen... Sonst muss du wirklich das Bild als platzverschwendenes BMP konvertieren...

Thorben86 16. Jul 2004 10:52

Re: JPG als Desktop-Wallpaper?
 
Der Active Desctop schmiert aber ab und zu ab, das is ziemlich beschissen.

Alexander 16. Jul 2004 10:58

Re: JPG als Desktop-Wallpaper?
 
Ist mir noch nicht passiert ;-)

supermuckl 16. Jul 2004 11:00

Re: JPG als Desktop-Wallpaper?
 
mir isser auch schon abgekackt ^^

sakura 16. Jul 2004 11:07

Re: JPG als Desktop-Wallpaper?
 
@supermuckl:
:warn:
Überdenke bitte Deine Wortwahl. In letzter Zeit widerspricht diese immer öfters den Regeln des angenehmen Umgangs mit- und untereinander.

...:cat:...


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:05 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz