Hallo alle zusammen…
Ich hab da mal was Programmiert was mir das Leben erleichtern soll.
Aber nu will ich auch noch wissen wie weit er ist und halt so status informationen.
Beschreibung:
*.sfv Dateien werden in den Ordnern gesucht(sind zu jedem archiv als CRC32 prüfsumme vorhanden). Diese file wird geöffnet und die Prüfsummen die ich mit C_Crypt.dll von den dateien bekomme werden gegen geprüft.
Ist alles in Ordnung entpackt er mir dieses Archiv. Und das für alle ordner die ich in eine listbox eingelesen habe.
So Funktioniert Prima abgesehen von 2 sachen.
- Ein Fortschrittsbalken über den status des gerade zu entpackenden archivs währe chick … aber ich habe schon überall rumgesucht. Ich hab den eindruck sowas existiert nicht.
Ich benutze die UnRar.dll von rarlabs.com.
Ich weiss wie groß das gerade zu entpackende archiv ist. Aber ich bekomme kein wert bei wieviel bytes er momentan ist, was mir es nicht ermöglicht den wert an ne ProgressBar zu übergeben.
- Wenn die dateien entpackt werden hängt das programm solange sie entpackt werden. Danach ist alles wieder schön. Das heisst es ist einfach nur die sanduhr da und die anderen 2 Progress Bars die anzeigen wieviel der Ordner bearbeitet worden sind und wie es mit den CRC32 prüfsummen für die einzelnen archive aussieht werden aktualisiert. Mehr nicht.
Jetz zur frage. Hat wer ne Idee wie ich es anstelle, dass ich meiner ProgressBar einen wert liefern kann?
Und ob es möglich ist dieses Programm trotz des Entpackens aktualisieren zu lassen ohne das es quasi zu hängen scheint.
If InStr(File1.List(a), ".rar") Then
Bla = entpacken(FileName, PathName)
End If
Prüffunktion mit abhängigkeit nach SFV CRC32 Check(hier nich relevant)
Function entpacken(ByRef DatName As String, ByRef PfadExtract As String)
If (Richtig = True) And (Falsch = False) Then
iDateien = fUncompressRarArchive(DatName, PfadExtract)
Else
FehlerMeldung = FehlerMeldung & PfadExtract & "Konnte nicht entpackt werden. Fehler in Datei!" & vbCrLf
Text2.Text = FehlerMeldung
End If
End Function
Und zu guter letzt die entpack funktion für die RAR archive.
Diese stammt aus einem Excample von rarlabs.
Private Function fUncompressRarArchive(ByVal sSource As String, ByVal sDestination As String) As Long
Dim road As RAR\_OPENARCHIVEDATA
Dim rrhd As RAR\_READHEADERDATA
Dim lArchive As Long
Dim iFile As Integer
Dim iFiles As Integer
fUncompressRarArchive = -1
road.srarArchiveName = sSource
road.lrarOpenMode = RarProcess.rpRarOpenModeExtract
lArchive = RAROpenArchiveA(road)
If road.lrarResult 0 Then Exit Function
iFiles = 0
iFile = RARReadHeaderA(lArchive, rrhd)
Do Until iFile 0
CheckAndExtract.Label1 = rrhd.srarFileName
CheckAndExtract.Label2 = rrhd.srarArchiveName
If RARProcessFileA(lArchive, RarProcess.rpRarExtract, "", sDestination + rrhd.srarFileName) = 0 Then
iFiles = iFiles + 1
End If
iFile = RARReadHeaderA(lArchive, rrhd)
Loop
RARCloseArchiveA lArchive
fUncompressRarArchive = iFiles
End Function
hoffe jemand hat n plan wie ich das machen könnte
achja … ich habs auch schon mit dem OCX steuerelement probiert, nur da funktionierts gar nich erst.
grüße vom digi