Tipp 1.26 - Datei offen
Wie kann ich prüfen, ob eine Datei geöffnet ist?
Mit dieser Funktion können Sie prüfen, ob eine Datei geöffnet ist. Kopieren Sie einfach nachfolgenden Quellcode in die Zwischenablage und fügen Sie anschließend den Inhalt der Zwischenablage in ein neues Modul ein. Die Aufrufparameter finden Sie im Quellcode beschrieben.
Verwendete Win32-Api-Aufrufe und Typen: GetLastError, lopen, lclose
Beispiel:
Option Explicit Public Declare Function GetLastError _ Lib "kernel32" () _ As Long Public Declare Function lopen _ Lib "kernel32" Alias _ "_lopen" _ (ByVal lpPathName As String, _ ByVal iReadWrite As Long) _ As Long Public Declare Function lclose _ Lib "kernel32" Alias _ "_lclose" _ (ByVal hFile As Long) _ As Long Public Function IsFileAlreadyOpen( _ sFilename As String) _ As Boolean '// ----------------------------------------------------- '// Funktion: | Ermittelt, ob eine Datei bereits '// | geöffnet ist. '// ----------------------------------------------------- '// Parameter: | sFilename = gültiger Dateipfad '// ----------------------------------------------------- '// Rückgabe: | True, wenn die Datei geöffnet ist, '// | sonst False '// ----------------------------------------------------- '// Autor: | Stefan Kulpa '// | EDV Innovation & Consulting - Dormagen '// ----------------------------------------------------- Dim hFile As Long Dim lastErr As Long hFile = -1 lastErr = 0 hFile = lopen(sFilename, &H10) If hFile = -1 Then lastErr = Err.LastDllError Else: lclose (hFile) End If If (hFile = -1) And (lastErr = 32) Then IsFileAlreadyOpen = True Else: IsFileAlreadyOpen = False End If End Function