Private Type RARHeaderData
ArcName As String * 260
FileName As String * 260
Flags As Long
End Type
Private Type RAROpenArchiveData
ArcName As String
OpenMode As Long
OpenResult As Long
End Type
Private Declare Function RAROpenArchive Lib "unrar.dll" (ByRef ArchiveData As RAROpenArchiveData) As Long
Private Declare Function RARCloseArchive Lib "unrar.dll" (ByVal hArcData As Long) As Long
Private Declare Function RARReadHeader Lib "unrar.dll" (ByVal hArcData As Long, ByRef HeaderData As RARHeaderData) As Long
Private Declare Function RARProcessFile Lib "unrar.dll" (ByVal hArcData As Long, ByVal Operation As Long, ByVal DestPath As String, ByVal DestName As String) As Long
Private Declare Sub RARSetPassword Lib "unrar.dll" (ByVal hArcData As Long, ByVal Password As String)
Private Sub Command1_Click()
Dim uRAR As RAROpenArchiveData
Dim uHeader As RARHeaderData
Dim RarFile As String
RarFile = Text1.Text
Password = 0 'пароль по умолчанию (для не шифрованных файлов)
uRAR.ArcName = RarFile 'путь к архиву
uRAR.OpenMode = 1 'режим открытия для извлечения или тестирования
lHandle = RAROpenArchive(uRAR) 'Open
If uRAR.OpenResult <> 0 Then MsgBox "Ошибка открытия№: " & uRAR.OpenResult & vbNewLine & RarFile
RARSetPassword lHandle, Password 'Задаёт пароль для работы с шифрованным архивом
Do Until RARReadHeader(lHandle, uHeader) <> 0
sStat = Left(uHeader.FileName, InStr(1, uHeader.FileName, vbNullChar) - 1)
If Sgn("&H" & Mid(Hex(uHeader.Flags), 3) And 2 ^ (3 - 1)) = 1 Then 'если у файла флаг шифрования включен, делаем "*"
crypt = "*"
Else
crypt = ""
End If
Print RARProcessFile(lHandle, 1, "", "") & vbTab & sStat & crypt 'вывод содержимого архива на форму
Loop
RARCloseArchive lHandle 'Close
End Sub
Private Sub Command2_Click()
Form1.Cls
End Sub
как пользоваться unRAR.dll для проверки пароля
Но они малофункцианальны. По этому хочу сделать свою прогу.
Прошу всех кто что нибудь про это знает написать.
У тебя в "Похожие темы" - 5 штук кандидатов на прочтение.
Цитата: Phodopus
У тебя в "Похожие темы" - 5 штук кандидатов на прочтение.
Я их смотрел. Но они на C++ и Delphi. Я их пока не знаю. По этому и выбрал раздел VB.
Вот что я пока узнал:
Код:
RARSetProcessDataProc
RARSetCallback
и
RAROpenArchiveEx
RARReadHeaderEx
RARProcessFileW
Цитата: DreamerAG
Хотелось бы узнать про функции:
RARSetProcessDataProc
RARSetCallback
и
RAROpenArchiveEx
RARReadHeaderEx
RARProcessFileW
RARSetProcessDataProc
RARSetCallback
и
RAROpenArchiveEx
RARReadHeaderEx
RARProcessFileW
Описание всех функций библиотеки unrar.dll содержится в файле unrardll.txt. Нагугливается легко.
Цитата: DreamerAG
RARSetProcessDataProc
RARSetCallback
и
RAROpenArchiveEx
RARReadHeaderEx
RARProcessFileW