Архивация из VB6

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Matv
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 13.11.2002 (Ср) 9:20
Откуда: Украина, Харьков

Архивация из VB6

Сообщение Matv » 21.05.2004 (Пт) 8:27

Подскажите, пожалуйста, как лучше организовать архивацию/разархивацию файлов из VB6.
При этом желательно убедиться, что на сомпе есть WinRar и где он находится (API функции FindFirst ??? или как лучше).
Далее как провести архивацию? Оператором Shell и далее командной строкой? Или WinRar предоставляет свою библиотеку? (в списке компонентов её не нашёл).
Заранее благодарен.

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 21.05.2004 (Пт) 10:10

Посмотри сайт WinRAR, там уже есть компонента для разархивации.

А на счет наличия архиватора в системе - посто посмотри ключ в реестре (лучше сразу всю ветку, она от версии к версии сохраняется).
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

Matv
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 13.11.2002 (Ср) 9:20
Откуда: Украина, Харьков

Сообщение Matv » 21.05.2004 (Пт) 13:37

gaidar писал(а):А на счет наличия архиватора в системе - посто посмотри ключ в реестре (лучше сразу всю ветку, она от версии к версии сохраняется).


Нет опыта считывания данных с реестра из VB6.
Какими функциями? RegOpenKeyEx, RegOpenKey (API) или GetAllSettings, GetSetting (VB) ?
К сожалению эти функции слушаться меня отказались :cry:
Можно ли привести пример кода для поиска пути к WinRar.exe?

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 22.05.2004 (Сб) 19:32

Этим способом Я считываю путь к WinRar (в качестве аргумента передаётся "rar":
[/code]


'WinRarApp = FindExebyFileExtension("rar")


Public Function FindExebyFileExtension _
(FileExtension As String) As String

Dim sType As String
Dim sName As String
Dim sFile As String
Dim iIndex As Integer
Dim lRegkey As Long
Dim iFoundCount As Integer
Dim nIcon As Integer
Dim lIcon As Long
Dim N As Long

sType = "." & LCase(FileExtension)
If RegOpenKey(HKEY_CLASSES_ROOT, ByVal sType, lRegkey) = 0 Then

sName = Space(255)
Call RegQueryValueEx(lRegkey, ByVal "", 0&, 1, ByVal sName, 255)
Call RegCloseKey(lRegkey)
If InStr(sName, Chr(0)) Then
sName = Left(sName, InStr(sName, Chr(0)) - 1)
Else
FindExebyFileExtension = ""
Exit Function
End If

If RegOpenKey(HKEY_CLASSES_ROOT, sName & "\shell\Open\command\", lRegkey) = 0 Then
sFile = Space(255)
RegQueryValueEx lRegkey, ByVal "", 0&, 1, ByVal sFile, 255
'MsgBox " sf " & sFile
Call RegCloseKey(lRegkey)
N = InStr(1, CStr(sFile), "exe", vbTextCompare)
If N > 0 Then


FindExebyFileExtension = Left(sFile, N + 2)
If Left(FindExebyFileExtension, 1) = Chr(34) Then
FindExebyFileExtension = Mid(FindExebyFileExtension, 2, Len(FindExebyFileExtension) - 1)
End If
Exit Function
Else
FindExebyFileExtension = ""
Exit Function
End If
End If

Else
FindExebyFileExtension = ""
End If
End Function


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 2

    TopList