تصميم و برمجة فايروس وهمي

achraf.mouni

  • Hero Member
  • *****
    • مشاركة: 2439
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
في: شباط 04, 2009, 08:05:58 مسائاً
السلام عليكم و رحمة الله

۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩



هذا مجرد درس  تعليمي للفيوجوال بيسك



۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩


تعلمنا صناعة فايروس مقلب الذي هو  تقليد لنافذة فورمات الويندوز



و هنا سأشرح صناعة فايروس مقلب الذي هو تقليد لنافذة الفورمات عبر  الدوس

۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩

فكرة  البرنامج

۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩

فكرة البرنامج تصميم واجهة تقليد  لنافذة الفورمات عبر  الدوس



النافذة  تتلقى الامر بالعودة الى الجذر ..cd
فيظهر سطر جديد ثم يتلقى الامر format  
فيظهر سطر جديد يبين تقدم عملية الفورمات
عند الانتهاء يظهر سطر يؤكد ان  الفورمات انتهى بنجاح
ثم سطر جديد يخبرك ان الجهاز سيعيد التشغيل بعد 20 ثانية و  يبتدأ العد التنازلي

ستظهر له صفحة بيضاء عبارة عن Form تأخذ كل الشاشة ...  تظهر الصفحة لمدة تحددها انت
ثم تأتي رسالة بعد انتهاء العداد لتخبر صديقك انه  مجرد مقلب


۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩

تصميم  الواجهة

۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩


ستتعلم انشاء Label و تغيير  ما هو مكتوب عليه من caption
ثم تغير لون الخط من ForeColor ثم تغيير لون  الخلفية من BackColor
و اخفائه من الواجهة باختيار القيمة False من  Visible
ستتعلم انشاء TextBox و تغيير ما هو مكتوب عليه من caption و اخفائه من  الواجهة باختيار القيمة False من Visible
ستتعلم اضافة Timer و تغيير قيمة  Interval
ستتعلم اضافة Form جديد و تغيير لون خلفيته من BackColor
ثم اخفاء  الاطار باختيار القيمة 0-None من BorderStyle

تتبع معي مراحل التصميم على  الصورة المتحركة التالية





انتبه اخي
هناك فرق بين Caption و  Name
Caption هو ما نشاهده على الواجهة
Name اسم تختاره انت او تتركه كما  هو
لاحظ معي انني غيرت اسماء ال Form1 الى FrmDos
و ال Form2 الى  FrmHorsService

سنستعمل هذه الاسماء فيما بعد داخل كود الاداة التي نحن في  صدد تصمميها

۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩
مقدمة الشرح

۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩

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

****************

الابل Label عبارة عن نص يظهر في واجهة  البرنامج أو الأداة بكتابة ما نريد في الخانة Caption
و نستطيع كذلك تغيير النص  عبد الكود
فمثلا الكود التالي يعطي الامر ل Label1 بإظهار النص بين  ""

شفرة: [اختيار]
كود:
Label1 = "Welcome
"
و  بطريقة أخرى
شفرة: [اختيار]
كود:
Label1.caption =  "Welcome
"
كلا  الأمرين سيظهران النص Welcome

أما إذا تلقى الامر الاتي

 
شفرة: [اختيار]
كود:
 Label1 =  ""
أو    كود:
 
شفرة: [اختيار]
label1.caption   =  ""فلن  يظهر أي نص في مكان الابل Label1

سنستغل هذا لإخفاء السطور التي لا نريد أن  تظهر لنا في بداية تشغيل الأداة

۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩

لاحظت  أننا وضعنا لبعض النصوص الاختيار False في Visible
و هذا يعني إخفاء Label او  TextBox من واجهة البرنامج
جميل ....
لكن كيف سنعيد إظهار ال label إلى  الواجهة من جديد

بكل بساطة سنعطي أمرا للابل بأن يظهر نفسه عبر الكود التالي  

 
شفرة: [اختيار]
كود:
Label1.Visible = True
طبعا  الاختيار False لإخفائه

نفس الشئ بالنسبة ل TextBox

مثلا نريد إخفاء  Text1

سنعطيه الأمر الآتي
شفرة: [اختيار]
كود:
Text1.Visible= False
True  لاظهاره

۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩

الآن ... يمكن ل Label1 أن يظهر  ما هو مكتوب ب Text1

بالأمر الآتي
شفرة: [اختيار]
كود:
Label1 = Text1
شفرة: [اختيار]
او    كود:
 Label12.Caption = Text1.Text
۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩

الآن  سأشرح Function تقوم بعرض نص حرفا حرفا

و هي Mid

و تكتب على الشكل  التالي

 
شفرة: [اختيار]
كود:
Mid(string,  start,  lenght)
بحيث  string هو النص الذي نريد إظهاره
Start ترتيب الحرف الذي نريد ان نبدأ منه  العرض
Lenght عدد الأحرف التي نريد  إظهارها

۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩

نأتي الآن إلى استعمال متغيرات  
نريد مثلا استعمال متغير رقمي نسميه a و هو عبارة عن عدد صحيح طبيعي
سنكتب  الأمر التالي
شفرة: [اختيار]
كود:
Dim a As Integer
انتبه  ...إذا اخترت اسم المتغير بحرف صغير a مثلا فعند استعماله لاحقا يجب كتابة حرف صغير  
عند النداء على المتغير بحرف A فسيحدث خطأ لأنه بالنسبة له عبارة عن متغير غير  موجود

۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩

ننتقل الآن إلى Timer
Timer  عبارة عن عداد تقوم أنت بتحديد تردده من خلال Interval

فمثلا القيمة 1000  تعطي الامر ل Timer بتكرير الحدث (الأوامر) في كل ثانية
500 تعطي الأمر ل Timer  بتكرير الحدث (الأوامر) في كل نصف ثانية
200 تعطي الأمر ل Timer بتكرير الحدث  (الأوامر) في كل خمس ثانية
6000 تعطي الأمر ل Timer بتكرير الحدث (الأوامر) في  كل ست ثوان

إذا تلقي العداد الأمر التالي
شفرة: [اختيار]
كود:
Timer1.True
فسيشرع  في تطبيق الأوامر التي تلقاها

إذا تلقى الأمر التالي
شفرة: [اختيار]
كود:
Timer1.False
فسيتوقف  عن تنفيذ الأوامر

۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩۩

شرح الجزء الاول من  الكود الذي سيتلقاه الفورم الاول
شفرة: [اختيار]
[CODE] كود:
Dim Lettre1 As Integer    Lettre1 ليكن عدد صحيح طبيعي باسم    
Dim Lettre2 As Integer     Lettre1 ليكن عدد صحيح طبيعي باسم    


Private Sub Form_Load()            عند فتح الفورم قم بما يلي

Label4 = ""             قم بمسح ما هو مكتوب في اللابل 4
Label6 = ""             قم بمسح ما هو مكتوب في اللابل 6
Lettre1 = 1                اعط للمتغير الاول قيمة 1
Lettre2 = 1                 اعط للمتغير الثاني قيمة 1
Timer1 = True                    شغل العداد الاول

End Sub              نهاية الاوامر التي يتلقاها الفورم

Private Sub Timer1_Timer()      عند تشغيل العداد الاول  قم بما يلي

Label4 = Label4 + Mid(Text1, Lettre1, 1)      اكتب باللابل 4 ماهو مكتوب بالنص1 حرفا حرفا
Lettre1 = Lettre1 + 1            أضف 1 الى المتغير الاول
If  Label4 = Text1 Then    اذا اصبح النص المكتوب باللابل 4 هو نفس النص المكتوب ب التكس1 اذن
Timer1 = False                  قم بتعطيل العداد الاول        
Timer2 = True                 ثم شغل العداد الثاني
End If                        نهاية الجملة الشرطية

End Sub            نهاية  الاوامر التي يتلقاها العداد الاول


Private Sub Timer2_Timer()            عند تشغيل العداد الثاني قم بما يلي
   

Label5.Visible = True            قم باظهار اللابل الخامس
Label6 = Label6 + Mid(Text2, Lettre2, 1)    اكتب باللابل 6 ماهو مكتوب بالنص2 حرفا حرفا
Lettre2 = Lettre2 + 1                 أضف 1 الى المتغير الثاني
If Label6 = Text2 Then    اذا اصبح النص المكتوب باللابل 6 هو نفس النص المكتوب ب التكس2 اذن
Timer2 = False             قم بتعطيل العداد  الثاني    
Label7.Visible = True        قم باظهار اللابل السابع
Label8.Visible = True        قم باظهار اللابل الثامن
Timer3 = True                ثم شغل العداد الثالث
End If                    نهاية الجملة الشرطية

End Sub            نهاية  الاوامر التي يتلقاها العداد

Private Sub Timer3_Timer()            عند تشغيل العداد الثالث قم بما يلي

Dim Pourcentage As Long             Pourcentage ليكن عدد حقيقي باسم
Pourcentage = Int(Rnd * 2)        قيمته هي قيمة عشوائية جداء 2 يتم تحويلها لعدد حقيقي
Label8 = Val(Label8) + Pourcentage & " %"        نكتب النتيجة في اللابل8
If Val(Label8) >= 100 Then         اذا بلغت قيمه العدد الذي يحتويه اللابل 8 القيمة 100 اذن
Label8 = "100" & "%"         اكتب باللابل 8  ما يلي
Timer3 = False            قم بتعطيل العداد  الثالث
Label9.Visible = True        قم باظهار اللابل التاسع
Timer4 = True                ثم شغل العداد الرابع
End If                    نهاية الجملة الشرطية

End Sub            نهاية  الاوامر التي يتلقاها العداد

Private Sub Timer4_Timer()        عند تشغيل العداد الرابع قم بما يلي

Label10.Visible = True            قم باظهار اللابل العاشر
Label11.Visible = True        قم باظهار اللابل الحادي عشر
Label11 = Val(Label11) - 1 & " secondes"         قيمة اللابل الحادي عشر ستتناقص ب 1
If Val(Label11) = -1 Then             اذا بلغت قيمة اللابل الحادي عشر 1- اذن
Timer4 = False             قم بتعطيل العداد  الرابع
FrmHorsService.Show        اظهر الفورم الثاني
Unload Me    
End If            نهاية الجملة  الشرطية

End Sub        نهاية الاوامر التي يتلقاها العداد الرابع
شرح الجزء الثاني من  الكود الذي سيتلقاه الفورم الثاني

شفرة: [اختيار]
كود:
Private Sub Timer1_Timer()               عند تشغييل العداد1 قم بما يلي
Unload Me                        اقفل الصفحة الحالية        
MsgBox "The Format of your Drive C: is done" & انه مجرد مقلب من لاختبار برودة دمك" & vbCrLf & "Click Enter" & vbCrLf & "MicroPro@Absba.org", vbInformation, ";-)"
الكود السابق هو الرسالة التحذيرية التي ستظهر بعد اختفاء شاشة الموت    
Timer1 = False                     لايقاف عمل العداد
End                            اقفال البرنامجEnd Sub                         نهاية الاوامر


Ssoft

  • Hero Member
  • *****
    • مشاركة: 1410
    • مشاهدة الملف الشخصي
    • http://sabeur-academy.com
    • البريد الالكتروني
رد #1 في: شباط 05, 2009, 03:19:27 مسائاً
thank'ssssssssss


lucky girl

  • Hero Member
  • *****
    • مشاركة: 1151
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #2 في: شباط 05, 2009, 05:34:09 مسائاً
merciiiiiiiiii bcp mon frere


achraf.mouni

  • Hero Member
  • *****
    • مشاركة: 2439
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #3 في: شباط 05, 2009, 05:44:11 مسائاً
لاشكرا على واجب..............شكرا لمرورك


mimik

  • Hero Member
  • *****
    • مشاركة: 1607
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #4 في: شباط 06, 2009, 10:34:03 صباحاً
merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii


achraf.mouni

  • Hero Member
  • *****
    • مشاركة: 2439
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #5 في: شباط 06, 2009, 01:44:28 مسائاً
لا شكرا على واجب .............شكرا لمرورك


achraf.mouni

  • Hero Member
  • *****
    • مشاركة: 2439
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #6 في: شباط 06, 2009, 01:44:40 مسائاً
لا شكرا على واجب .............شكرا لمرورك


The Ghoost

  • Newbie
  • *
    • مشاركة: 18
    • مشاهدة الملف الشخصي
    • http://aboubaker.info/
    • البريد الالكتروني
رد #7 في: تشرين الأول 20, 2009, 08:52:12 مسائاً
مشكور أخي على الدرس لكن لاأعتقد أنه في مكانه

هنا الويب و ليس الويندوز