1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| Private Declare Sub Sleep Lib "Kernel32.dll" (ByVal dwMillisenconds As Long)
Sub main()
' Déclare la fonction sleep
' Si le fichier est ouvert.
If IsFileOpen("E:\essai.txt") Then
Call Sleep(15000)
MsgBox "OUVERT"
'GoTo 121
' Si le fichier n'est pas déjà ouvert.
Else
Call Sleep(15000)
MsgBox "FERME"
End If
End Sub
' Cette fonction vérifie si le fichier est ouvert ou non.
' Si le fichier est déjà ouvert, elle retourne True.
' Si le fichier n'est pas ouvert, elle retourne False.
' Autrement, une erreur d'exécution s'est produit liée
' à un autre problème d'accès au fichier.
Function IsFileOpen(filename As String) As Boolean
Dim filenum As Long, errnum As Long
On Error Resume Next ' Si erreur, passe à l'instruction qui suit directement celle qui a engendré l'erreur d'exécution .
filenum = FreeFile() ' Obtient un numéro de fichier.
' Tente d'ouvrir le fichier.
Open filename For Input Lock Read As #filenum
Close filenum ' Ferme le fichier.
errnum = Err.Number ' Enregistre le numéro de l'erreur produite.
On Error GoTo 0 ' Désactive la gestion des erreurs dans la procédure actuelle.
' On regarde quelle erreur s'est produite.
Select Case errnum
' Aucune erreur.
' le fichier n'est PAS déjà ouvert.
Case 0
IsFileOpen = False
' Erreur 70 "Permission Denied."
' Le fichier est déjà ouvert.
Case 70
IsFileOpen = True
' Une autre erreur s'est produite.
Case Else
Error errnum
End Select
End Function |
Partager