我现在做一个程序要求是屏障所有的系统热键.主界面要全屏显示.还要求对WORD.EXCEL等文件进行操作.但在打开前要先判断文件是不是已经打开?怎么判断.如果打开我捕获这个程序放到最前的窗体上.现在只是不知道怎么样判断文件是否打开?求各位高手帮忙.

解决方案 »

  1.   

    如果你这里要判断的仅仅是Word/Excel文件,则只需判断其打开时临时文件是否存在就行
    当然也可以使用GetObject()方法判断
      

  2.   

    不错
    那如果是一个没有这样副产品的 文件名.exe 呢
      

  3.   

    '引用Microsoft Scripting Runtime
    Private Sub Command1_Click()
        Dim filePath As String
        filePath = "D:\myWork\Test\新建 文本文档.txt"
        If IsFileOpen(filePath) Then MsgBox "文件已经打开!"
    End SubPublic Function IsFileOpen(sFile As Variant) As Boolean
        IsFileOpen = False
        Dim openFile As New FileSystemObject, ExName As String, targetFileName As String
        If Not openFile.FileExists(sFile) Then
            MsgBox "文件不存在!"
            Exit Function
        End If
        ExName = openFile.GetExtensionName(sFile)
        targetFileName = "c:\temp." & ExName
        On Error GoTo ErrOpen
        openFile.MoveFile sFile, targetFileName
        openFile.MoveFile targetFileName, sFile
        Debug.Print targetFileName
        Exit Function
    ErrOpen:
        IsFileOpen = True
    End Function
      

  4.   

    Word,Excel的文件第二次打开会有三个选项,只读,通知,取消.在程序里捕获不到出错信息的.我应该怎么办呢.