![]() |
Word schliessen geht nicht
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 |
Re: Word schliessen geht nicht
Hallo binio,
Zitat:
Ich habe noch nicht so ganz verstanden was du eigentlich vorhast... Zugriff über CreateOleObject:
Delphi-Quellcode:
Ich weiss nicht ob bei der PE auch der Server-Komponenten-Reiter vorhanden ist. Dort gibt es eine TWordApplication-Komponente.
uses ComObj;
function GetVorlagenPfad:string; var Word:OleVariant; begin Word:=CreateOleObject('word.application'); try Result:=Word.Options.DefaultFilePath[2]; finally Word.Quit; end; end; Zugriff über TWordApplication:
Delphi-Quellcode:
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.
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; Gruss Thorsten |
Re: Word schliessen geht nicht
Um Word wieder zu schliessen, empfiehlt MS folgendes:
Delphi-Quellcode:
Damit sollte sich zumindest das Problem mit dem Template lösen.
Word.NormalTemplate.Saved := true ; // MS Knowledgebase article 285885
Word.Activedocument.Close (SaveChanges := false) ; Word.Quit ; |
Re: Word schliessen geht nicht
Ich ermittle mit:
Delphi-Quellcode:
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 :(
....
var Word: Variant; s: String .... word:=CreateOleObject('word.Application'); s:=word.Startuppath; word:Unassigned; .... Da ich nun erfahren habe das ich diese nicht löschen kann wenn Word offen ist muss ich es hinbekommen das word beendet wird. |
Re: Word schliessen geht nicht
Hast du mal meinen Code ausprobiert? Dort wird Word doch gleich wieder beendet.
|
Re: Word schliessen geht nicht
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz