Как проверить кто открыл файл Word? - VB

Узнай цену своей работы

Формулировка задачи:

Программа пишет данные в Word, но иногда некоторые юзвери забывают закрыть Word. В общем требуется проверить кто именно (не только сам факт, что он открыт) открыл файл ну и сообщить об этом юзверю. Есть идеи?

Решение задачи: «Как проверить кто открыл файл Word?»

textual
Листинг программы
Option Explicit

Sub btnCheck()
Dim strFileToOpen As String
strFileToOpen = ActiveSheet.Cells(1, 1)

    If Not DocExists(strFileToOpen) Then
        MsgBox strFileToOpen & " does not exist."
        Exit Sub
    End If

    If IsFileOpen(strFileToOpen) Then
        MsgBox strFileToOpen & " is already Open" & _
        vbCrLf & "By " & LastUser(strFileToOpen), vbInformation, "File in Use"
        MsgBox ActiveWorkbook.WriteReservedBy
    Else
        MsgBox strFileToOpen & " is not open"
        MsgBox ActiveWorkbook.WriteReservedBy
    End If

End Sub

Function DocExists(ByVal mydoc As String) As Boolean
    On Error Resume Next
    If Dir(mydoc) <> "" Then
        DocExists = True
    Else
        DocExists = False
    End If
End Function

Function IsFileOpen(strFullPathFileName As String) As Boolean
Dim hdlFile As Long

On Error GoTo Err_hdlr

hdlFile = FreeFile
Open strFullPathFileName For Random Access Read Write Lock Read Write As hdlFile
IsFileOpen = False
Close hdlFile
Exit Function

Err_hdlr:
IsFileOpen = True
Close hdlFile

End Function

Function LastUser(strPathFull As String) As String
Dim intFileNamePosition As Integer
Dim intPathLen As Integer
Dim strPathPart1 As String
Dim strPathPart2 As String
Dim strPath As String
Dim lngTextLen As Long
Dim text As String

On Error GoTo Err_hdlr

intFileNamePosition = InStrRev(strPathFull, "\", -1)
intPathLen = Len(strPathFull)
strPathPart1 = Left(strPathFull, intFileNamePosition)
strPathPart2 = "~$" & Right(strPathFull, intPathLen - intFileNamePosition - 2)
strPath = strPathPart1 & strPathPart2

Open strPath For Binary As #1
lngTextLen = LOF(1)
text = Space(lngTextLen)
Get 1, , text
Close #1
LastUser = Mid(text, 2, lngTextLen - 1)
Exit Function

Err_hdlr:
    MsgBox "Wrong file type! Please contact your system administrator."
    Close #1

End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5
Похожие ответы