Filestatus (1) mit VBS auswerten ? Fehler Zugriffsverletzung vermeiden
Hallöchen,
ich habe im Moment ein Problem mit einem File. Ein Script bleibt immer hängen weil das File angeblich von irgendeinem Programm genutzt wird. Ich würde das File dann gern übergehen.
Im Script kommt der Fehlercode 800A0046, Erlaubnis verweigert.
Ich kann in die Datei schreiben. Ich kann die Datei nicht umbenennen und nicht löschen. Die Datei ist nicht schreibgeschützt.
Ich habe den Filestatus mangels besserem Wissen statt in VBS in VBA geprüft und erhalte dort einen Rückgabewert 1. 0 wäre geschlossen, 70 geöffnet.
Wie kann man das in VBS prüfen?
ich habe im Moment ein Problem mit einem File. Ein Script bleibt immer hängen weil das File angeblich von irgendeinem Programm genutzt wird. Ich würde das File dann gern übergehen.
Im Script kommt der Fehlercode 800A0046, Erlaubnis verweigert.
Ich kann in die Datei schreiben. Ich kann die Datei nicht umbenennen und nicht löschen. Die Datei ist nicht schreibgeschützt.
Ich habe den Filestatus mangels besserem Wissen statt in VBS in VBA geprüft und erhalte dort einen Rückgabewert 1. 0 wäre geschlossen, 70 geöffnet.
...
Open xlFile For Binary Access Read Lock Read As #File
...
Case 0: FileStatus = XL_CLOSED
Case 70: FileStatus = XL_OPEN
Case 76: FileStatus = XL_DONTEXIST
Case Else: FileStatus = XL_UNDEFINED
...
Wie kann man das in VBS prüfen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 79045
Url: https://administrator.de/forum/filestatus-1-mit-vbs-auswerten-fehler-zugriffsverletzung-vermeiden-79045.html
Ausgedruckt am: 09.01.2025 um 15:01 Uhr
6 Kommentare
Neuester Kommentar
Hallo schauan!
WMI ist eine gute Idee - Du könntest es vielleicht mit dem Property "InUseCount" der CIM_DataFile Class versuchen.
Beispielcode dafür:
Ansonsten wäre da noch (zum Umbenennen) die CIM_FileAction Class ...
Grüße
bastla
WMI ist eine gute Idee - Du könntest es vielleicht mit dem Property "InUseCount" der CIM_DataFile Class versuchen.
Beispielcode dafür:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM CIM_DataFile WHERE Name = " _
& "'D:\\DeinFolder\\DeinFile.Ext'")
For Each objItem in colItems
WScript.Echo "InUseCount: " & objItem.InUseCount
Next
Grüße
bastla
Hallo Andre!
Einen hab ich noch: How do I rename a file without getting an error message? (auch nicht getestet, insbes hinsichtlich Performance) ...
... oder eben doch "On Error Resume Next".
Grüße
bastla
Einen hab ich noch: How do I rename a file without getting an error message? (auch nicht getestet, insbes hinsichtlich Performance) ...
... oder eben doch "On Error Resume Next".
Grüße
bastla