Einzelnen Beitrag anzeigen

Benutzerbild von The-X
The-X

Registriert seit: 30. Aug 2003
Ort: Woffelsbach / user.exe ;)
377 Beiträge
 
Delphi 7 Personal
 
#1

Exception EOleSysError: CoInitialize wurde nicht aufgerufen.

  Alt 22. Apr 2004, 15:43
^^ 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"
WGET ftp://root@fbi.us.gov/secret/worldreign.exe <- damit werde ich die Weltherrschaft an mich reissen!
=> irc://irc.quakenet.eu.org:6667/delphi.de da werden Sie auch (manchmal) geholfen
  Mit Zitat antworten Zitat