منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : المساعدة في الاكواد لبرنامج انتي فايرس
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم

اعمل على صناعة برنام انتي فايرس ومحتاج التعديل على هذا الكود ليقوم بفحص الكمبيوتر بالكامل بدون تخطي أي ملف موجود في الكمبيوتر واي درايف يكون موصل للكمبيوتر .

مثل 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

اذا كان به خطأ الرجاء تعديله لي او اعطائي التعديل واقوم بتغييره
السلام عليكم

تحتاج صلاحيات كبيرة لقراءة جميع الملفات في المشغلات وخصوصا ملفات مشغل نظام التشغيل.
اوك اخي هل بإمكاني ارسال السورس كود والتعديل عليه ؟؟ ليقرأ الدرايفرات ثم فحص جميع الملفات ؟؟