Hallo Stephan,
wenn ein Dokument bereits in Benutzung ist
Wenn es sich dabei um eine Benutzung aufm lokalen Laufwerk und lokalem Office handelt, also nicht Netzwerk(*), und nur mit einem Office(**) gearbeitet wird, und ferner wenn die Datei in dem aktiven Office geöffnet ist, dann würde ich den
oComponentWalker einsetzen.
(*)
Netzwerk habe ich nicht, kann also nichts weiter dazu sagen ob und wo die '~lock'-Datei angelegt wird.
(**)
Also nicht gleichzeitig AOO und LO aktiv sind. In diesem Falle ist der
oComponentWalker nutzlos. Zumindest nach meinen bisherigen Wissen.
zu einem früheren Zeitpunkt nicht richtig geschlossen wurde
Und hier tauchen noch ganz andere Probleme auf, zumindest aus meiner
Laienhaften Ansicht.
Nicht immer wird das Fehlerfenster eingeblendet, wenn zu der zu öffnenden Datei eine '~lock-Datei' existiert. Die normale Datei wird also ganz einfach geöffnet.
Hört sich ja im ersten Augenblick ganz harmlos an. Jedoch aufm zweiten Blick sieht dass ein klein wenig anders aus.
Angenommen es gibt ne Möglichkeit den Pfad und den Dateinamen zu extrahieren um die '~lock-Datei' zu löschen, dann müsste ja erstmal überprüft werden ob sich die Datei nicht normal öffnen lässt. Wenn das also möglich ist, das öffnen, dann muss ja gar nicht mehr die '~lock-Datei' gelöscht werden. Also wäre das löschen der '~lock-Datei' per Makro an dieser Stelle überflüssig. Und wenn die geöffnete Datei gespeichert wird, wird dann auch die alte '~lock-Datei' gelölscht, so fern alles gut geht.
Das war das eine Problem.
Und jetzt kommt ein ganz anderes.
Ich hatte bei mir hier einen Ordner gefunden der einige '~lock-Dateien' beinhaltet. Und bei einer hatte ich versucht die dazugehörige normale Datei zu öffnen um zu sehen was 'genau' passieren wird. Und als ich das sah, wollte ich eine Idee von mir in einem kleinen Makro mal testen. Aber dabei bin ich auf ein anderes komisches verhalten gestoßen.
Ich konnte per simplen Makro die betroffene normale Datei nicht öffnen, es geschah einfach gar nix, die Datei wurde also nicht geöffnet, und es gab keine Fehlermeldung.
Hier das simple Makro dazu. Ist von Dannenhöfer und minimal geändert.
Code: Alles auswählen
Sub DateiOeffnen
dim oDocument as Object
url=converttourl("C:\test.sxw")
dim myFileProp() as new com.sun.star.beans.PropertyValue
oDocument = StarDesktop.loadComponentFromURL(url, "_blank", 0, myFileProp() )
end sub
Um sicher zu gehen das dies kleine Makro auch funktioniert, hatte ich aus einem anderen Ordner eine andere Datei die kein '~lock' hat eingetragen. Und was soll ich sagen! Das Makro funktioniert.
Aber warum nicht mit der anderen Datei, die mit einem '~lock' versehen ist?
Also die gewünschte Datei direkt per Doppelklick geöffnet. Und dann sah ich mein Problem.
Die zu öffnende Datei hat wohl eine Dateigröße von 0KB, was normaler weise kein Problem ist.
ABER!!!
Bei dem manuellen öffnen erschien dann als erstes dies Fenster.
- in use.jpg (48.2 KiB) 6809 mal betrachtet
Nanu!?
Wie dat denn!?
Ich vermute das das mit folgendem zusammenhängt.
Ich habe auf der Partition C: das Betriebssystem und einige Programme installiert. Meine selbst erstellten Daten sind aber auf der Partition D: gespeichert. Und die gewünschte Datei wurde vor einer kompletten Neuinstallation vom Beriebssystem und den Programmen auf C: erstellt. Und da ist dann wohl irgendwie die Dateizuordnung, Einträge in der Win-Regestrie oder was auch immer abhanden gekommen. Und wahrscheinlich wird deshalb das 'ASCII FILTER-Fenster' eingeblendet.
Nur zur Info, damit es nicht zu missverständnissen kommt.
Die gewünschte Datei wurde mit dem gleichen Office mit der gleichen Versionsnummer erstellt, wie mit der der ich den jetzigen Test durchgeführt hatte.
Und erst
nach einem klick auf "Abbrechen" erscheint dann dies Fenster.
- ASCII-Filter.jpg (39.91 KiB) 6809 mal betrachtet
Mit anderen Worten.
Vor der eigentlichen Meldung ob eine Datei "gelockt" ist, findet noch eine andere Überprüfung vom Office statt.
Aber warum, genauer gesagt was wollte ich denn mit dem kleinen Testmakro überhaupt testen?
In einem früheren Beitrag von dir hatte ich dir ja schon einmal
Error-Funktion [Laufzeit] vorgeschlagen, was dir aber nicht geholfen hatte. Und jetzt wollte ich dir das auch wieder vorschlagen, aber erst nach einem Test. Denn so rein theoretisch könnten ja folgende Fehlernummern zurück gegeben werden.
Code: Alles auswählen
54 Dateimodus falsch
70 Zugriff verweigert
75 Pfad/Datei-Zugriffsfehler
Da ich momentan aber keine Datei habe die durch "gelockt" wirklich gesperrt ist, kann ich den Test nicht zu ende führen.
Gruß
balu