^^ die kommt z.B. wenn ich den Desktop Hintergrund ändern will (incl. Active Desktop)
Delphi-Quellcode:
procedure ChangeWallpaper(aFile:
String);
const CLSID_ActiveDesktop: TGUID = '
{75048700-EF1F-11D0-9888-006097DEACF9}';
var
hObj: IUnknown;
ADesktop: IActiveDesktop;
wstr: PWideChar;
begin
hObj := CreateComObject(CLSID_ActiveDesktop);
// hier gibt's die Exception
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;
SystemParametersInfo(SPI_SETDESKWALLPAPER,0,pointer(aFile),
SPIF_SENDWININICHANGE);
end;
Stelle im Source markiert ... // hier
Die erscheint aber nur, weil ich keine Formulare benutze? , da ich das ganze direkt in die
dpr packe um das prog klein zu halten (75K).... da gleiche problem hatte ich bei einer eigenen CPL (Systemsteuerung) und da hatte ich Formulare (ohne wäre auch ziemlich sinnlos *gg*)
allerdings bei der TShellLink-Komponente...
Hat zufällig jemand eine Lösung für mich? ich find das ganze nämlich ziemlich "bescheiden"