Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Ms Word Interface nicht unterstützt (https://www.delphipraxis.net/152089-ms-word-interface-nicht-unterstuetzt.html)

Sergej_Molotov 10. Jun 2010 17:19

Ms Word Interface nicht unterstützt
 
Hallo Zusammen,

ich bin mal wieder mit Microsoft Word 2003 am kämpfen (leider nicht auf meinem System sondern beim Fremdrechner).
Beim Starten meiner Applikation werden Informationen über Ms-Word ermittel:

Delphi-Quellcode:
    WordVariant        := TWordObject.Create;
    WordVariant.Visible := false;
    WordVariant.NewDoc ('');

    aWordStartupPath := WordVariant.Application.Options.DefaultFilePath[wdStartupPath];
Das funktioniert auch bei ca 2000 Rechnern, nur wie immer, gibt es mindestens eine Ausnahme. Irgendwo bei den oben aufgeführten Aktionen erscheint folgende Exception: Interface nicht unterstützt.
Den Word-Prozess sehe ich im Process-Explorer.

Nun meine Frage: Gibt es irgendwie eine Möglichkeit, herauszufinden, was genau nicht korrekt ist bzw. welche Registry-Werte oder Dateien für die Ausführung fehlen?

Office 2003 wurde schon brav deinstalliert und neu installiert. Das Problem besteht aber weiterhin.

p80286 10. Jun 2010 17:27

AW: Ms Word Interface nicht unterstützt
 
Da solche Fehlermeldungen meist nichts taugen:
a)ist "DefaultFilePath[wdStartupPath]; " eigentlich sinnvoll, oder hat es bisher eigentlich nur funktioniert?

b) passen die Werte eigentlich zusammen? Soweit ich weiss sind die meisten arrays [1..n] da ist eine 0 als Index nicht so toll.

Und schau mal im VBA-Editor unter Extras - Verweise nach ob da auch alles verfügbar ist was Du brauchst, da gibt es manchal seltsame Nebeneffekte!

Gruß
K-H

David Martens 10. Jun 2010 17:33

AW: Ms Word Interface nicht unterstützt
 
Also für Excel benutze ich folgenden Code:
Delphi-Quellcode:
function TExcelServer.GetVersion: RVersion;
var
  s : string;
  bWaitForFinish : boolean;
begin
  bWaitForFinish := true;

  while bWaitForFinish do
  begin
    try
      s := ExcelApplication.Version[FLCID];
      bWaitForFinish := false;
    except
    end;
  end;

  Result.Major := StrToInt(Copy(s, 0, Pos('.', s) - 1));
  Result.Minor := StrToInt(Copy(s, Pos('.', s) + 1, Length(s)));
end;
Danach entscheide ich mich z.T. für verschiedene Vorgehensweisen, aber im Grunde benutze ich eine (selbst erweitere) Excel97 TypeLibrary, also grundsolides Excel 97. Damit bin ich bis jetzt am besten gefahren.

Das gilt für Word genauso. Und NewDoc(''); kann da das Problem schon sein.

Hier noch RVersion:
Delphi-Quellcode:
type
  RVersion = record
{
    Excel

    1.0    = Excel 1.0
    2.0    = Excel 2.0
    2.2    = Excel 2.2
    3.0    = Excel 3.0
    4.0    = Excel 4.0
    5.0    = Excel 5.0
    6.0    =    -
    7.0    = Excel 95
    8.0    = Excel 97         // ab hier unterstützt
    9.0    = Excel 2000
    10.0   = Excel 2002 (XP)
    11.0   = Excel 2003
    12.0   = Excel 2007       // unterstützt außer TExcelServer.CustomChartSet
}
{
    Word

    ??? nichts zu finden
}

    Major,
    Minor : integer;
  end;

Sergej_Molotov 10. Jun 2010 17:44

AW: Ms Word Interface nicht unterstützt
 
Hallo:

zu a: Jain, das war mal sinnvoll und gibt eben den Pfad wieder, in dem sich automatisch geladene Vorlagen befinden. Diese machen zum Teil auch Probleme und aus Protokollierungsgründen steht das da noch drinnen.

zu b: auch jain. Mal fängt es bei 0 mal bei 1 an. Da das eine Konstante ist wdStartupPath = $00000008; sollte wir schon größer als 0 sein ;)

zu c: Guter Tipp, werde mal überprüfen, ob da was fehlt. Auf meinem System sind (nur zu allg. Info) folgende Werte:
- Visual Basic For Applications
- Microsoft Word 12.0 Object Library
- OLE Automation
- Microsoft Office 12.0 Object Library

Werde mir morgen mal den Rechner genauer anschauen.

Falls sonst noch jemand Ideen hat, so möge er sich bitte melden.

Naja,dass mit NewDoc('') ist schon fast seit mehreren Jahren im Code mit unterschiedlichsten Word-Version kompatibel (von Word 95 bis Word 2010 beta).
Ich bin eigentlich der festen Überzeugung, dass es nicht am Code, sondern an einer fehlenden Lib, Registry oder sonstige Systemvorraussetzungen (inkl. der Word-Installation) handelt.

Aber danke für eure Unterstützung. Mehr davon ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:45 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