AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Exception EOleSysError: CoInitialize wurde nicht aufgerufen.
Thema durchsuchen
Ansicht
Themen-Optionen

Exception EOleSysError: CoInitialize wurde nicht aufgerufen.

Ein Thema von The-X · begonnen am 22. Apr 2004 · letzter Beitrag vom 17. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von The-X
The-X

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

Exception EOleSysError: CoInitialize wurde nicht aufgerufen.

  Alt 22. Apr 2004, 16: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
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Exception EOleSysError: CoInitialize wurde nicht aufgeru

  Alt 22. Apr 2004, 16:54
Wenn du das liest:
Zitat:
Exception EOleSysError: CoInitialize wurde nicht aufgerufen.
Was würdest du tun, um den Fehler zu beseitigen? Mal was anderes aus dem wirklcihen Leben, soll es ja auch noch geben. Die schaltest eine Lampe ein und eine Stimme sagt: "Kann kein Licht machen, weil keine Birne eingeschraubt ist." Was machst du dann?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von The-X
The-X

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

Re: Exception EOleSysError: CoInitialize wurde nicht aufgeru

  Alt 22. Apr 2004, 16:57
Luckie mein Lieber das würde ich ja gerne tun, wenn ich nur wüsste zu welchem Objekt diese funktion gehört ??

denn z.B. in der Standalone-Version von meinem StartUp-Manager taucht das Problem beim Verknüpfung auslesen nicht auf... nur in der Cpl-Version

[edit] btw. ich finde diese funktion bei keinem einzigen Objekt...
lediglich so:

Zitat von Code Hint:
Const ComObj.CoInitializeEx: TCoInitializeExProc - ComObj.Pas (401)
und was ich damit machen soll ? Keine Ahnung ?
[/edit]
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
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Exception EOleSysError: CoInitialize wurde nicht aufgeru

  Alt 22. Apr 2004, 18:05
Zitat von The-X:
Luckie mein Lieber das würde ich ja gerne tun, wenn ich nur wüsste zu welchem Objekt diese funktion gehört ??
CreateComObject braucht diesen Aufruf eventuell vorher?
Zitat:
denn z.B. in der Standalone-Version von meinem StartUp-Manager taucht das Problem beim Verknüpfung auslesen nicht auf... nur in der Cpl-Version
Anderer Code?

Zitat:
[edit] btw. ich finde diese funktion bei keinem einzigen Objekt...
lediglich so:

Zitat von Code Hint:
Const ComObj.CoInitializeEx: TCoInitializeExProc - ComObj.Pas (401)
Scheint wohl in der Unit ComObj zu liegen. Und warum suchst du diese Funktion als eine Eigenschaft von irgendwelechen Objekten?

Zitat:
und was ich damit machen soll ? Keine Ahnung ?
[/edit]
Aufrufen eventuell?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Exception EOleSysError: CoInitialize wurde nicht aufgeru

  Alt 22. Apr 2004, 19:58
Hallo,
hier ist die CoInitialize Funktion aus dem Windows API gemeint.
CoUnInitialize nicht vergessen !!! und in der Win32-Referenz nachschauen.
Oder dort: CoInitialize
I come from outer space to save the human race
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#6

Re: Exception EOleSysError: CoInitialize wurde nicht aufgeru

  Alt 22. Apr 2004, 20:34
Zitat von Luckie:
Mal was anderes aus dem wirklcihen Leben, soll es ja auch noch geben. Die schaltest eine Lampe ein und eine Stimme sagt: "Kann kein Licht machen, weil keine Birne eingeschraubt ist." Was machst du dann?
Ich drehe mich um und suche den Sprecher.


@The-X: Was machst du, wenn der Active Desktop nicht aktiv ist? klick, klick.
  Mit Zitat antworten Zitat
Benutzerbild von The-X
The-X

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

Re: Exception EOleSysError: CoInitialize wurde nicht aufgeru

  Alt 23. Apr 2004, 15:06
matthias? was denkst du denn, woher ich diesen Code (zum teil jedenfalls) her habe ???
desweiteren geht es mir mehr um diese exception als um das ändern des Hintergrundes an sich

ich häng gleich mal das ganze gezippt an... dann könnt ihr ja selber mal guggn, weil ich werd daraus nicht schlau... wenn ich die Procedure über eine Form aufrufe funktioniert's einwandfrei,
aber wenn ich diese Procedure in einem Programm ohne Formulare einfach in eine .dpr kopiere, compiliere und dann aufrufe kommt in der ersten Code-Zeile (wie markiert) diese verdammte Exception

und was den Active-Desktop angeht... ohne ihn funktioniert's ja.
erst nachdem ich den Source zum ändern vom AD mit reingetan hab kam die Exception
Angehängte Dateien
Dateityp: zip setwallpaper.zip (44,3 KB, 7x aufgerufen)
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
Benutzerbild von The-X
The-X

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

Re: Exception EOleSysError: CoInitialize wurde nicht aufgeru

  Alt 23. Apr 2004, 15:19
Zitat von Jens Schumann:
Hallo,
hier ist die CoInitialize Funktion aus dem Windows API gemeint.
CoUnInitialize nicht vergessen !!! und in der Win32-Referenz nachschauen.
Oder dort: CoInitialize
seit wann ist eine Konstante eine Funktion ?

Zitat von Code Hint:
Const ComObj.CoInitializeEx: TCoInitializeExProc - ComObj.Pas (401)
und dazu

Zitat von Luckie:

Zitat von The-X:
denn z.B. in der Standalone-Version von meinem StartUp-Manager taucht das Problem beim Verknüpfung auslesen nicht auf... nur in der Cpl-Version
Anderer Code?
^^ Ja, aber auch Unit ShlObj bzw. ComObj um Verknüpfungen auszulesen.
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
Benutzerbild von The-X
The-X

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

Re: Exception EOleSysError: CoInitialize wurde nicht aufgeru

  Alt 23. Apr 2004, 15:28
Hat sich erledigt

Unit ActiveX eingebunden,
CoInitialize(nil);
am Anfang, und
CoUnInitialize;
am Ende der Procedure aufgerufen

und schwupps war die exception weg

[OT]
k.a. warum aber ich komme zu der Folgerung, das Unit Forms auch Unit ActiveX benutzt?
weil sonst ist kein Unterschied festzustellen ?
[/OT}
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
MathiasSimmack
(Gast)

n/a Beiträge
 
#10

Re: Exception EOleSysError: CoInitialize wurde nicht aufgeru

  Alt 23. Apr 2004, 15:41
Nur mal so: Das Problem tritt bspw. auch auf, wenn man den MS-XML-Parser in einer Konsolen- oder nonVCL-Anwendung benutzen will. Bei der VCL gibt es garantiert eine der eingebundenen Units, die ihrerseits "CoInitialize" aufruft. Ansonsten muss man es selbst machen. Ich habe es mir inzwischen angewöhnt, es auch in VCL-Apps grundsätzlich selbst aufzurufen:
Delphi-Quellcode:
unit Form1;

{ ... }

initialization
  CoInitialize(nil);
finalization
  CoUninitialize;
end.
und damit bin ich bisher recht gut gefahren.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:39 Uhr.
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