السلام عليكم
اعمل على صناعة برنام انتي فايرس ومحتاج التعديل على هذا الكود ليقوم بفحص الكمبيوتر بالكامل بدون تخطي أي ملف موجود في الكمبيوتر واي درايف يكون موصل للكمبيوتر .
مثل USB Hardisk / Flash Memory
الرجاء المساعدة
هذا هو الكود
كود :
FolderBrowserDialog1.SelectedPath = ("C:/")
FolderBrowserDialog2.SelectedPath = ("D:/")
Try
For Each strDir As String In System.IO.Directory.GetDirectories(FolderBrowserDialog1.SelectedPath)
For Each strFile As String In System.IO.Directory.GetFiles(strDir)
ListBox1.Items.Add(strFile)
Next
Next
Catch ex As Exception
End Try
Timer1.Start()
اولا أنت لا تضمن ان Flash Disk مكانه هو D أنصحك أولا أن تقرأ جميع Divers ثم بعد ذلك تقرأ ما هو موجود عليها
كلامك صحيح اخوي لكن لم اعرف اعدل على الكود هذا ليقوم بقراءة الدرايفرات ثم الفحص ما بداخلهم هذا هو مقصدي لتوجه لكم يا اخوان
PHP كود :
Public Function GetLocalDrives() As List(Of IO.DriveInfo)
Dim list As List(Of IO.DriveInfo) = New List(Of IO.DriveInfo)()
Dim drives As IO.DriveInfo() = IO.DriveInfo.GetDrives()
For i As Integer = 0 To drives.Length - 1
Dim di As IO.DriveInfo = drives(i)
list.Add(di)
Next
Return New List(Of IO.DriveInfo)(list)
End Function
الكود هذا سوف يساعدك علي قراءة جميع Drivers و هو سوف يعطيك مصفوفة عناصرها عبارة عن DriveInfo و يمكنك هنا التعامل مع كل عنصر في المصفوفة علي حده
وهذه دالة اخري سوف تعطيك فكرة عن كيفية التأكد من أن اي Drive جاهز للإستخدام
PHP كود :
Public Function IsReadyDrive(driveName As String) As Boolean
Dim driveInfo As IO.DriveInfo = New IO.DriveInfo(driveName)
Return driveInfo.IsReady
End Function
عليك فقط أن تمرر مها DriveInfo.Name من الدالة الأولي
و الكود التالي للتوضيح فقط
PHP كود :
For Each drive As IO.DriveInfo In GetLocalDrives()
Me.ListBox1.Items.Add(drive.Name & ":" & drive.DriveType.ToString)
Next
اتمنى المساعدة اكثر للعلم البرنامج يظهر لي الدرايفرات لكن لايقرا كل مابداخل الدرايفرات فقط ملفات هو يختارها
بصراحة انا مشكك بهذا الكود ربما الكود يحتاج الى تعديل ليقوم بقراءة جميع الملفات مع الدرايفرات
كود :
ProgressBar1.Maximum = Conversions.ToString(ListBox1.Items.Count)
total.Text = Conversions.ToString(ListBox1.Items.Count)
If Not ProgressBar1.Value = ProgressBar1.Maximum Then
Try
ListBox1.SelectedIndex = ListBox1.SelectedIndex + 1
TextBox1.Text = ListBox1.SelectedItem.ToString
Catch ex As Exception
End Try
Try
Dim scanbox As New TextBox
Dim read As String = My.Computer.FileSystem.ReadAllText("viruslist.txt")
ProgressBar1.Increment(1)
Detected.Text = Conversions.ToString(ListBox2.Items.Count)
files.Text = Conversions.ToString(ProgressBar1.Value)
scanbox.Text = read.ToString
Dim md5 As MD5CryptoServiceProvider = New MD5CryptoServiceProvider
Dim f As FileStream = New FileStream(ListBox1.SelectedItem, FileMode.Open, FileAccess.Read, FileShare.Read, 8192)
f = New FileStream(ListBox1.SelectedItem, FileMode.Open, FileAccess.Read, FileShare.Read, 8192)
md5.ComputeHash(f)
Dim hash As Byte() = md5.Hash
Dim buff As StringBuilder = New StringBuilder
Dim hashByte As Byte
For Each hashByte In hash
buff.Append(String.Format("{0:X2}", hashByte))
Next
If scanbox.Text.Contains(buff.ToString) Then
ListBox2.Items.Add(ListBox1.SelectedItem)
End If
Catch ex As Exception
End Try
Else
Timer1.Stop()
MsgBox("Finished Scanning Folder!")
TabControl1.SelectTab(3)
If ListBox1.Items.Count = 0 Then
MsgBox("No Threats were detected, Scan Window will close!", MsgBoxStyle.Information)
End If
End If
End Sub
اذا كان به خطأ الرجاء تعديله لي او اعطائي التعديل واقوم بتغييره
السلام عليكم
تحتاج صلاحيات كبيرة لقراءة جميع الملفات في المشغلات وخصوصا ملفات مشغل نظام التشغيل.
اوك اخي هل بإمكاني ارسال السورس كود والتعديل عليه ؟؟ ليقرأ الدرايفرات ثم فحص جميع الملفات ؟؟