25-02-17, 07:49 PM
انظر للمثال التالي:
اطلع على هذه المشاركة:#5
بالنسبة لالغاء النافذة فتستطيع تمرير كلمة مرور ثابتة من دون inputbox
PHP كود :
Imports System.ComponentModel
Imports System.IO
Imports Ionic.Zip
Public Class Form1
Dim lst As New List(Of String)
Dim ofd As OpenFileDialog
Dim sfd As SaveFileDialog
Dim zip_pass As String = ""
Private Sub p(ByVal i As Integer)
If ProgressBar1.InvokeRequired Then
ProgressBar1.Invoke(New Action(Of Integer)(AddressOf p), i)
Else
ProgressBar1.Value = i
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
zip_pass = InputBox("أكتب كلمة مرور لقفل الملف")
lst.Clear()
ofd = New OpenFileDialog
ofd.Multiselect = True
If ofd.ShowDialog = DialogResult.OK Then
lst.AddRange(ofd.FileNames)
End If
If lst.Count > 0 Then
Button1.Enabled = False
Button2.Enabled = False
ProgressBar1.Maximum = lst.Count - 1
If b1.IsBusy = False Then b1.RunWorkerAsync()
End If
End Sub
Dim zip As ZipFile
Private Sub b1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles b1.DoWork
zip = New ZipFile
zip.Password = zip_pass
For a = 0 To lst.Count - 1
b1.ReportProgress(a)
zip.AddFile(lst(a), "")
Next
End Sub
Private Sub b1_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) Handles b1.ProgressChanged
p(e.ProgressPercentage)
End Sub
Private Sub b1_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs) Handles b1.RunWorkerCompleted
If zip.Count > 0 Then
zip.Save(IO.Path.GetFileNameWithoutExtension(lst(lst.Count - 1)) & ".zip")
End If
Button1.Enabled = True
Button2.Enabled = True
End Sub
Dim zipfilename As String = ""
Private Sub smax(ByVal i As Integer)
If ProgressBar1.InvokeRequired Then
ProgressBar1.Invoke(New Action(Of Integer)(AddressOf smax), i)
Else
ProgressBar1.Maximum = i
End If
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
zip_pass = InputBox("أكتب كلمة مرور لالغاء قفل الملف")
ofd = New OpenFileDialog
ofd.Filter = "Zip Files(*.zip)|*.zip"
If ofd.ShowDialog = DialogResult.OK Then
zipfilename = ofd.FileName
Button2.Enabled = False
Button1.Enabled = False
If b2.IsBusy = False Then b2.RunWorkerAsync()
End If
End Sub
Dim zip2 As ZipFile
Private Sub b2_DoWork(sender As Object, e As DoWorkEventArgs) Handles b2.DoWork
zip2 = ZipFile.Read(zipfilename)
zip2.Password = zip_pass
smax((zip2.Count) - 1)
Dim m As Integer = 0
For Each en As ZipEntry In zip2
b2.ReportProgress(m)
en.Extract()
m += 1
Next
End Sub
Private Sub b2_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs) Handles b2.RunWorkerCompleted
Button2.Enabled = True
Button1.Enabled = True
End Sub
Private Sub b2_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) Handles b2.ProgressChanged
p(e.ProgressPercentage)
End Sub
End Class
بالنسبة لالغاء النافذة فتستطيع تمرير كلمة مرور ثابتة من دون inputbox
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير

