AGB  ·  Datenschutz  ·  Impressum  







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

Word schliessen geht nicht

Ein Thema von binio · begonnen am 15. Aug 2006 · letzter Beitrag vom 15. Aug 2006
Antwort Antwort
Benutzerbild von binio
binio

Registriert seit: 25. Nov 2005
Ort: Werl, Iserlohn, Dortmund, Hagen
85 Beiträge
 
Delphi 2006 Professional
 
#1

Word schliessen geht nicht

  Alt 15. Aug 2006, 11:13
Hallo


habe das Problem das wenn ich CreateOleObject('word.application'); auffrufe um von Word den Pfad von den Vorlagen zu erfahren im Hintergund immer WinWord gestartet wird und es mir verweigert *.dot Daten im Vorlagenverzeichnis zu löschen.
Wenn ich im Tast Manager nachgucke ist WinWord gestartet und ich kann nichtmal im Explorer *.dot Daten löschen. Nun gibt es 3 möglichkeiten.
Einmal den Pfad anders herausbekommen(kenne leider keine andere)
Oder winword zu schliessen von Delphi aus.(Ich habs mit word.quit(....);versucht jedoch bekomm ich immer "variante referenziert keine automatisierungsobjekte" aus den Bildschirm)
Oder Windows zu Zwingen die test.dot zu löschen egal welche sicherheitsprobleme das gibt. (weiss nicht ob diese Idee realisierbar ist)

Kann mir da bitte einer helfen?
Sitze schon 2 Tage an den Problem.


Robert
if(copy_paste==false)
Programmierer=Hilflos;
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Word schliessen geht nicht

  Alt 15. Aug 2006, 16:38
Hallo binio,

Zitat von binio:
habe das Problem das wenn ich CreateOleObject('word.application'); auffrufe um von Word den Pfad von den Vorlagen zu erfahren im Hintergund immer WinWord gestartet wird und es mir verweigert *.dot Daten im Vorlagenverzeichnis zu löschen.
was meinst du macht CreateOleObject('word.application');? Es öffnet Word, also ist doch klar das das dann im Hintergrund läuft. Das du dann keinen Zugriff auf bestimmte (geladenene) *.dot Dateien hast ist auch klar, du kannst keine geöffneten Dateien löschen. Das ist allgemein unter Windows so.

Ich habe noch nicht so ganz verstanden was du eigentlich vorhast...

Zugriff über CreateOleObject:
Delphi-Quellcode:
uses ComObj;

function GetVorlagenPfad:string;
var Word:OleVariant;
begin
  Word:=CreateOleObject('word.application');
  try
    Result:=Word.Options.DefaultFilePath[2];
  finally
    Word.Quit;
  end;
end;
Ich weiss nicht ob bei der PE auch der Server-Komponenten-Reiter vorhanden ist. Dort gibt es eine TWordApplication-Komponente.

Zugriff über TWordApplication:
Delphi-Quellcode:
uses WordXP; // kann eventuell auch anders heissen

function GetVorlagenPfad:string;
var Word:TWordApplication;
begin
  Word:=TWordApplication.Create(Self);
  try
    Word.Connect;
    Result:=Word.Options.DefaultFilePath[wdUserTemplatesPath];
  finally
    Word.Disconnect;
    Word.Quit;
    Word.free;
  end;
end;
Der Vorteil wenn du über TWordApplication gehen kannst ist, dass die Word-Konstanten in Delphi definiert sind und du so wesentlich leichter an die Kontentenwerte rankommst.

Gruss
Thorsten
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Word schliessen geht nicht

  Alt 15. Aug 2006, 16:46
Um Word wieder zu schliessen, empfiehlt MS folgendes:

Delphi-Quellcode:
Word.NormalTemplate.Saved := true ; // MS Knowledgebase article 285885
Word.Activedocument.Close (SaveChanges := false) ;
Word.Quit ;
Damit sollte sich zumindest das Problem mit dem Template lösen.
  Mit Zitat antworten Zitat
Benutzerbild von binio
binio

Registriert seit: 25. Nov 2005
Ort: Werl, Iserlohn, Dortmund, Hagen
85 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Word schliessen geht nicht

  Alt 15. Aug 2006, 17:07
Ich ermittle mit:


Delphi-Quellcode:
....
var
  Word: Variant;
  s: String

....
word:=CreateOleObject('word.Application');
s:=word.Startuppath;
word:Unassigned;
....
das Vorlagen verzeichniss von Word. Nur dummerweise wird Word auch geöffnet und ich dann keine Vorlagen mehr löschen weil ich Word in der Task laufen habe und es mir jeglichen zugriff auf Vorlagen verweigert :(
Da ich nun erfahren habe das ich diese nicht löschen kann wenn Word offen ist muss ich es hinbekommen das word beendet wird.
if(copy_paste==false)
Programmierer=Hilflos;
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Word schliessen geht nicht

  Alt 15. Aug 2006, 17:16
Hast du mal meinen Code ausprobiert? Dort wird Word doch gleich wieder beendet.
  Mit Zitat antworten Zitat
Benutzerbild von binio
binio

Registriert seit: 25. Nov 2005
Ort: Werl, Iserlohn, Dortmund, Hagen
85 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Word schliessen geht nicht

  Alt 15. Aug 2006, 17:39
Ich hab deine Lösung getestet an mein Rechner.
Sie klappt wunderbar. Ich muss es nur morgen am ganzen Project einbinden.
Gerade ist keiner mehr im Büro aber ich bin zuversichtlich das es klappen wird.

Ich danke euch Omata und Jelly
if(copy_paste==false)
Programmierer=Hilflos;
  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 12:58 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