AGB  ·  Datenschutz  ·  Impressum  







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

Word Document offen?

Ein Thema von Beck93 · begonnen am 4. Aug 2011 · letzter Beitrag vom 5. Aug 2011
Antwort Antwort
Beck93

Registriert seit: 2. Aug 2011
22 Beiträge
 
Delphi XE Professional
 
#1

Word Document offen?

  Alt 4. Aug 2011, 08:12
Hi,

ich bins schon wieder, ich stoße jeden Tag auf neue Probleme in meinen verschiedenen Programmen.

Also ich öffne ein Word Document über Delphi. Nur möchte ich vorher schauen ob es nicht schon geöffnet ist, da sonst immer diese Meldung mit Schreibgeschütz öffnen kommt, was ich aber nicht möchte

Hier ist der Quelltext wie ich word öffne:
Delphi-Quellcode:
try
    WordObj := ComObj.CreateOleObject('Word.Application');
    WordObj.documents.open(Exe);
    Doc := WordObj.ActiveDocument;
except
    ShowMessage('Die Datei konnte nicht geöffnet werden!');
    Exit;
  end;
Wie könnte ich jetzt überprüfen ob die Datei schon offen ist?

Bin für jede Hilfe sehr Dankbar

Grüße

Beck93
  Mit Zitat antworten Zitat
Andreas Schilling

Registriert seit: 6. Sep 2006
106 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Word Document offen?

  Alt 4. Aug 2011, 08:50
Ich benutze die function "isfileinuse" um von mir temporär auf die festplatte geschriebene Worddokumente (welche ich mit Delphi dann öffne) zu prüfen ob Word das Dokument nach dem Beenden endlich wieder freigegeben hat, damit ich sie zurück in die Datenbank speichern kann. Funktioniert ganz zuverlässig.
http://www.delphipraxis.net/84637-sc...tzung-ist.html
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Word Document offen?

  Alt 4. Aug 2011, 09:57
Hi,

WordObj.Documents ist ein Container der alle offenen Word-Dokumente enthält. Den kannst Du doch durchlaufen und alle Dokumente prüfen ob deren Namen mit dem Dateinamen über ein stimmt...

Grüße
  Mit Zitat antworten Zitat
Beck93

Registriert seit: 2. Aug 2011
22 Beiträge
 
Delphi XE Professional
 
#4

AW: Word Document offen?

  Alt 4. Aug 2011, 10:00
Danke für eure Antworten

@lemmy: Wie kann ich den Container denn durchlaufen?

Danke

Beck93
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Word Document offen?

  Alt 4. Aug 2011, 10:37
Versuch es mal mit:
Delphi-Quellcode:
for i:=1 to WordObj.Documents.Count do
  WordObj.Documents.Item(i).fullname
ungetestet
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Word Document offen?

  Alt 4. Aug 2011, 11:01
Codebeispiel siehst Du ja oben - ich bin mir nur über die Dimensionen nicht sicher ob das mit 1 oder 0 beginnt... seis drum, das siehst Du.

Wenn Du so Zeugs suchst, kannst Du über die VB-Hilfe (unter den Word-Makros - musst Du ggf. nachinstallieren) auch die notwendigen Aufrufe für VB finden, die du einfach in Delphi umsetzen kannst.

ALternativ machst Du die frühe Bindung und erstellst oder nutzt die Wrapper-Komponenten von Delphi (ab Delphi 7 sind die mit dabei)

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Word Document offen?

  Alt 4. Aug 2011, 11:49
Excel und Word zählen immer(?) ab 1.
(gab es da nicht mal eine Diskussion uber die Standardzählung in arrays und Verwandten?)
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Beck93

Registriert seit: 2. Aug 2011
22 Beiträge
 
Delphi XE Professional
 
#8

AW: Word Document offen?

  Alt 5. Aug 2011, 07:17
DAs hört sich gut an mit der frühen Bindung und Wrapper komponenten wenn ich dann mehr alleine Rausfinden kann Nur leider weiß ich überhaupt nichts DAmit anzufangen.
Ich habe noch Nie Davon gehört.

Vieleicht wäre ja einer so nett und könnte mir etwas dazu erklären oder beschreiben

Grüße

Beck93

Geändert von Beck93 ( 5. Aug 2011 um 07:45 Uhr)
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Word Document offen?

  Alt 5. Aug 2011, 07:49
Hi,

geh in deine Projektoptionen, dort auf die Option "Packages". In der Liste rechts scrollst Du dann nach unten bis Du "Microsoft Office 2000 Beispiele für gekapselte Komponmenten..." findest. Die sind deaktiviert. einfach aktivieren und gut ist. Alternativ kannst Du auch die Office XP komponenten nehmen. Aufwärtskompatibel sind die alle.


Die Auswahl welche Komponenten Du verwendest hängt stark von deinem Zielmarkt ab. Mit der Auswahl von office 2000 hast Du auf jeden Fall den kleinsten gemeinsamen Nenner, d.h. das sollte auf neueren Office-Versionen funktionieren.

Wenn Du die Funktionen von einer aktuelleren Office-Version nutzen willst, dann kannst Du dir die Wrapper auch selber erzeugen: Komponente - Komponente importieren - Typbibliothek importieren. Dann die entsprechende Word-DLL oder Office-DLL suchen oder notfalls hinzufügen. Ich habe hier kein MS OFfice - deshalb kann ich dir das nicht genau sagen.

Und wenn Du dann noch Interesse hast, das was Du mit MS Office machst auch mit OpenOffice/LibreOffice zu machen, dann schau dich auf meiner Homepage um...

Grüße
  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 11:33 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