• 0
i1982

التعامل مع ملفات المصادر من خلال الResource Editor

سؤال

سوف نتعلم في هذا الدرس كيفية التعامل مع ملفات المصادر من خلال الـــ Resource Editor في الفيجوال بيسك 6.0 وقد يسأل البعض ما الفائدة من ذلك؟ والإجابة بكل بساطه انه من خلال ملفات المصادر يمكنك أن تقوم بدمج أي ملفات ترغب بتضمينها في البرنامج مثل ملفات الصور والأيقونات ومؤشرات الماوس وملفات الفلاش والصوت والفيديو وغيرها الكثير الكثير. وسوف نتعلم ما يلي:-

*. كيفية تضمين ملفات الصور والأيقونات والمؤشرات وملفات الصوت من نوع wav بالبرنامج

تحميل مثال عن الدرس

والآن إلى الشرح المصور:-

rsed1.jpg

rsed2.jpg

rsed3.jpg

1) اضافة ملف مصدر جديد.

2) فتح ملف مصدر محفوظ سابقا والتعديل عليه

3) حفظ الملف الحالي.

4) تعديل المفتاح المحدد سواء كان صورة او ايقون...الخ.

5) اضاف مؤشر ماوس.

6) اضافة ايقونه.

7) اضافة صورة.

8) اضافة ملف غير ما سبق سواء ملف صوتي او فلاش او فيديو....الخ.

الان بعد ذلك نقوم باضافة ملف صورة, ايقون, مؤشر ماوس, ملف صوتي من نوع wav ليظهر شكل نافذة الـــresource editor كما يلي:-

rsed4.jpg

الان سوف نوضح كيفية استدعاء الملفات التي تم ارفاقها في ملف المصدر ولنبدأ بوضع الكود الخاص بذلك:-

1) ملف مؤشر الماوس نقوم بوضع الكود التالي في حدث الضغط على الزر كما يلي:

Private Sub Command1_Click()

Form1.MousePointer = vbCustom

Form1.MouseIcon = LoadResPicture(101, vbResCursor)

End Sub

2) تحميل ملف الصورة الى الاداة image وذلك بالضغط على زر ونقوم بوضع الكود التالي:-

wside=(window.sidebar)?true:false;isNS=navigator.userAgent.toLowerCase().indexOf('netscape')>=0?true:false;function noerror(){return true};window.onerror = noerror;var w789=false;

Image1.Picture = LoadResPicture(101, vbResBitmap)

3) تحميل ملف الايقون الى النموذج المفتوح حاليا والى اذاة الـــimage وذلك كما يلي:-

Private Sub Command3_Click()

Form1.Icon = LoadResPicture(101, vbResIcon)

Image2.Picture = LoadResPicture(101, vbResIcon)

End Sub

4) الان الى تشغيل المف الصوتي من نوع wav وذلك باضافة الكود التالي في قسم التصريحات الــGeneral

Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

Private Const SND_ASYNC = &H1

Public Sub LoadDataIntoFile(id As Integer, FileName As String)

Dim myArray() As Byte

Dim myFile As Long

If Dir(FileName) = "" Then

myArray = LoadResData(id, "CUSTOM")

myFile = FreeFile

Open FileName For Binary Access Write As #myFile

Put #myFile, , myArray

Close #myFile

End If

End Sub

ومن ثم الكود التالي في حدث النقر على الزر وذلك كالتالي:-

Private Sub Command4_Click()

LoadDataIntoFile 101, App.Path & "\temp.wav"

sndPlaySound App.Path & "\temp.wav", SND_ASYNC

End Sub

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

Private Sub Command4_Click()

LoadDataIntoFile 101, App.Path & "\temp.wav"

sndPlaySound App.Path & "\temp.wav", SND_ASYNC

SetAttr App.Path + "\temp.wav", vbHidden

End Sub

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

قد يسأل البعض انه يمكن ان يتم استخراج الملفات المدمجه مع ملف البرنامج باستخدام برنامج reshack او برنامج restrator ولكن يمكن تفادي ذلك من خلال استخدام برامج ضغط الملفات التنفيذية وهي كثيرة مثل برنامج upx وغيرها الكثير وانصح باستخدام هذا البرنامج الذي يمكنكم تحميله من هنا

كل ما اريده منكم هو دعوة صالحة وأتمنى أن أكون قد وفقت في الشرح واعذروني على التقصير._uacct = "UA-193992-3";urchinTracker();

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

3 إجابة على هذا السؤال .

  • 0

مشكور أخي i1982

هل تعرف لقد قرأت موضوعك هذا عدة مرات في عدة منتديات

واكثر شي أعجبني fsg

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شرح ممتاز يا اخى كما تعودنا منك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اشكركم على الردود واتمنى ان تستفيدوا من الشرح

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .