![]() |
Prüfen ob bestimmte Datei in Excel geöffnet ist
Hallo zusammen,
wie kann überprüfen ob eine bestimmte Datei in Excel geöffnet ist? Ich habe es schon mit der IsFileinUse Funktion aus der Codelib versucht aber die sagt mir beim Speichern einer Datei, dass diese immer in Benutzung ist. Ich versuche eine Datei mit einem TSaveFileDialog zu speichern und beim Event OnFileOKClick frage ich mit der obigen Funktion ab ob die Datei in Benutzung ist und bekomme immer ein positives Ergebnis zurück. LG Mirko |
AW: Prüfen ob bestimmte Datei in Excel geöffnet ist
IsFileInUse gibt nur wahr oder falsch zurück.
Versuchs mal damit ![]() |
AW: Prüfen ob bestimmte Datei in Excel geöffnet ist
Im Grunde ist es meist egal, wer es ist, denn wichtig ist nur ob oder ob nicht.
PS: Auch der FileDialog kann die Datei geöffnet haben. * einem ein Handler im Explorer, zu Anzeige von Dateiinfos, dem Icon oder einem Overlay, * und natürlich auch der Virenscanner, während auf die Datei zugegriffen wird (beim Rausholen des Icon und der Zusatzinfos) * oder der Dialog selber, in Form einer Vorschau * und beim Speichern gibt es einen Zugriffstest, den man in den Optionen des Dateidialog de-/aktivieren kann Klar, das Handle besorgen, dann in allen Programmen die Handles auslesen und dieses Handle suchen, aber ... Sich in alle Programme hooken, dort alle Handles suchen, zu jedem Handle den Dateinamen rausfinden und das verrgleichen, aber neeeeeee... Dann, siehe ganz unten in dem Link, gibt es in aktuelleren Windowsen eine API, wo man aber nur Programme rausbekommt, die ihre offenen Dateien dort registrieren, was z.B. Excel macht. |
AW: Prüfen ob bestimmte Datei in Excel geöffnet ist
Hallo,
eine andere Möglichkeit wäre noch.
Delphi-Quellcode:
der Code ist jetzt nur eine grob Fassung.
var
excel_obj: olevariant; i: Integer; begin excel_obj := GetActiveOleObject('Excel.Application'); for i := 1 to excel_obj.workbooks.count do if excel_obj.workbooks.item[i].name = 'Mappe1.xlsx' then showmessage(excel_obj.workbooks.item[i].name+' ist geöffnet'); // excel_obj.Quit; excel_obj := Unassigned; end; Gruß |
AW: Prüfen ob bestimmte Datei in Excel geöffnet ist
Danke mmw, das funktioniert.
LG Mirko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:25 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