AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

GetActiveOleObject Fehler in der log-Datei

Ein Thema von delphicoder123 · begonnen am 15. Mär 2019 · letzter Beitrag vom 16. Mär 2019
Antwort Antwort
delphicoder123

Registriert seit: 14. Feb 2019
102 Beiträge
 
#1

GetActiveOleObject Fehler in der log-Datei

  Alt 15. Mär 2019, 14:10
Hallo,
wenn in der Log-Datei wegen dieser Zeile Code GetActiveOleObject('Word.Application'); ein Fehler dokumentiert wird.
Es beim Compilieren aber kein Fehler gab.
Woran kann das liegen?

Exception EOleSysError occured in ...
Call stack:
Fehler in Zeile 1201

Geändert von delphicoder123 (15. Mär 2019 um 14:15 Uhr) Grund: Text ergänzt
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: GetActiveOleObject Fehler in der log-Datei

  Alt 15. Mär 2019, 14:15
Beim Compilieren wird nicht geprüft, ob Word existiert/installiert ist. Zu dem Zeitpunkt ist das nur irgendein String. Da kann auch "Hallo Welt" stehen.
Peter
  Mit Zitat antworten Zitat
delphicoder123

Registriert seit: 14. Feb 2019
102 Beiträge
 
#3

AW: GetActiveOleObject Fehler in der log-Datei

  Alt 15. Mär 2019, 14:16
Bei mir ist Word installiert. Also kann das nicht der Fehler sein.
  Mit Zitat antworten Zitat
delphicoder123

Registriert seit: 14. Feb 2019
102 Beiträge
 
#4

AW: GetActiveOleObject Fehler in der log-Datei

  Alt 15. Mär 2019, 14:23
Ich bekomme glaube ich den Fehler, weil bei mir keine Word Instanz läuft?
Wie kann ich überprüfen, ob eine Instanz von Word läuft?
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#5

AW: GetActiveOleObject Fehler in der log-Datei

  Alt 15. Mär 2019, 14:25
Zitat von RTFM:
GetActiveOleObject returns a reference to the IDispatch interface of the active object for the given class indicated by ClassName. ClassName is the ...
Installiert reicht nicht, muss auch laufen.

Wenn's nicht läuft, gibt es diesen Fehler.
Bei diesem Fehler musst Du Word dann halt starten -> CreateOleObject('Word.Application')

Es wäre schön, wenn Du uns auch den Quelltext dazu zeigen könntest, dann kann man eventuell erkennen, wo die Fehlerursache liegt.

http://www.delphigroups.info/2/08/262770.html
  Mit Zitat antworten Zitat
delphicoder123

Registriert seit: 14. Feb 2019
102 Beiträge
 
#6

AW: GetActiveOleObject Fehler in der log-Datei

  Alt 15. Mär 2019, 14:55
Zitat von RTFM:
GetActiveOleObject returns a reference to the IDispatch interface of the active object for the given class indicated by ClassName. ClassName is the ...
Wenn's nicht läuft, gibt es diesen Fehler.
Bei diesem Fehler musst Du Word dann halt starten -> CreateOleObject('Word.Application')
Nur, wenn kein Word läuft, soll ein OLEObjekt erstellt werden.
Mit diesem Code kann ich überprüfen, ob eine Word Datei bereits läuft?

Code:
function GetWord: IDispatch;
var
  ClassID: TGUID;
  Unknown: IUnknown;
  HR: HResult;
begin
  ClassID := ProgIDToClassID('Word.Application');
  HR := GetActiveObject(ClassID, nil, Unknown);
  if (HR = MK_E_UNAVAILABLE) then
    Result := CreateComObject(ClassID) as IDispatch
  else begin
    OleCheck(HR);
    OleCheck(Unknown.QueryInterface(IDispatch, Result));
  end;
end;

Geändert von delphicoder123 (15. Mär 2019 um 15:12 Uhr)
  Mit Zitat antworten Zitat
delphicoder123

Registriert seit: 14. Feb 2019
102 Beiträge
 
#7

AW: GetActiveOleObject Fehler in der log-Datei

  Alt 15. Mär 2019, 16:07
Zitat von RTFM:
GetActiveOleObject returns a reference to the IDispatch interface of the active object for the given class indicated by ClassName. ClassName is the ...

Es wäre schön, wenn Du uns auch den Quelltext dazu zeigen könntest, dann kann man eventuell erkennen, wo die Fehlerursache liegt.

http://www.delphigroups.info/2/08/262770.html
Den genauen Code darf/kann ich nicht weitergeben. Aber in dem try ist dieser Code.

Worddok := GetActiveOleObject('Word.Application');

In dem Link, den du mir geschickt hast, wird auch GetActiveObject verwendet.
Dieser Befehl führte doch zu der Exception.

Deswegen hilft mir das auch nicht weiter?
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
969 Beiträge
 
Delphi 6 Professional
 
#8

AW: GetActiveOleObject Fehler in der log-Datei

  Alt 15. Mär 2019, 17:43
Hmm..

Dir ist schon bekannt, das dir GetActiveOleObject('Word.Application') ein IDispatch interface einer 'laufenden' Word-Anwendung zurück gibt? Somit musst Du erst Word starten, damit das funktioniert.

Wenn kein Word läuft, dann bekommst du die Exception!

Willst Du hingegen Word 'starten' und dann per OLE verwenden, dann ist ein CreateOleObject('Word.Application') notwendig!
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#9

AW: GetActiveOleObject Fehler in der log-Datei

  Alt 16. Mär 2019, 12:09
In dem Link, den ich Dir geschickt habe, steht zuerst ein Get...

Und wenn das scheitert, fliegt eine Exception, das heißt, es läuft noch kein Word.

Und in der Exceptionbehandlung wird dann mit Create... eine Wordinstanz erstellt.

Von daher hilft es Dir durchaus.

Oder:

Das ist Die Lösung wie man es für gewöhnlich macht.

Wenn Du möchtest, kannst Du das CreateOleObject noch in einen eigenen Exceptionblock packen, damit Du dort, wenn ein Fehler auftritt (der dann bedeutet, es ist kein Word installiert), auch auf diese Situation reagieren kannst.

Grob so:
Delphi-Quellcode:
Try
  Get ...;
Except
  try
    Create ...;
  Except
    MessageDlg(Format('Es ist kein ... installiert.%s%s',[#13#13,e.Message]),mtError,[mbOk],0);
  end;
end;
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:52 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