Что нового

Как узнать используется ли файл другими процессами?

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Нижеприведенная функция ответит на этот вопрос.

Код:
#Include <WinAPI.au3>

ConsoleWrite(_FileInUse(RegRead('HKLM\SOFTWARE\AutoIt v3\AutoIt', 'InstallDir') & '\AutoIt.chm') & @CR)

Func _FileInUse($sFile)

	Local $hFile = _WinAPI_CreateFile($sFile, 2, 2, 0)

	If $hFile Then
		_WinAPI_CloseHandle($hFile)
		Return 0
	EndIf

	Local $Error = _WinAPI_GetLastError()

	Switch $Error
		Case 32 ; ERROR_SHARING_VIOLATION
			Return 1
		Case Else
			Return SetError($Error, 0, 0)
	EndSwitch
EndFunc   ;==>_FileInUse
 
  • Like
Реакции: Norm

Redline

AutoIT Гуру
Сообщения
506
Репутация
375
Еще бы узнать кем используется, прикрутить возможность убить использующий процесс(а лучше освободить файл) и будет полноценный Unlocker :smile:
 
Верх