vb.net or vb判断文件是否执行中(打开状态)

前端之家收集整理的这篇文章主要介绍了vb.net or vb判断文件是否执行中(打开状态)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


Private Declare Function lopen Lib "kernel32" Alias "_lopen" _
(ByVal lpPathName As String,ByVal iReadWrite As Long) As Long
Private Declare Function GetLastError Lib "kernel32" () As Long
Private Declare Function lclose Lib "kernel32" Alias "_lclose" _
(ByVal hFile As Long) As Long

''' <summary>
''' 既にファイルがオープンされているかの確認
''' </summary>
''' <param name="Filename">判断ファイル</param>
''' <returns>true:opening,false:closed</returns>
''' <remarks></remarks>
Public Shared Function IsFileAlreadyOpen(ByVal Filename As String) As Boolean
Dim hFile As Long
Dim lastErr As Long

' ファイル ハンドルとエラー変数の初期化。
hFile = -1
lastErr = 0

' 読み取り専用および排他共有でオープン。
hFile = lopen(Filename,&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

猜你在找的VB相关文章