تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
عمل امتداد ملفات خاص بك
#2
والشفرة اختصاراً ستكون كالتالي :

PHP كود :
code:Sub NewFileType(ProgramPath As StringByVal Extension As StringDescription As String)
   
Dim W As Object
   Dim E 
As String
 
   Set W 
CreateObject("Wscript.shell")
 
   If 
Left(Extension1) <> "." Then
      E 
"." Extension "\"
   Else
      E = Extension & "
\"
      Extension = Mid(Extension, 2)
   End If
 
   W.regwrite "
HKCR\" & E, Extension & " File"
   W.regwrite "
HKCR\" & Extension & " File\", Description
   W.regwrite "
HKCR\" & Extension & " File\Default Icon\", ProgramPath
   W.regwrite "
HKCR\" & Extension & " File\Shell\Open\Command\", ProgramPath & " %1"
   W.regwrite "
HKCR\" & Extension & " File\Shell\", "Open"
End Sub 

وهذا الاجراء هو الذي يقوم بالعمل ويمكنك ان تضعه داخل برنامجك الذي تريد تسجيله ولكي تستدعي هذا الامر يمكن ان نكتب التالي :

PHP كود :
code:NewFileType "C:\data\Test.exe" "rgd" "Rgheed Special Files" 

في السطر السابق سوف نكون قد اضفنا نوع جديد من الملفات وامتداده هو rgd ويقوم بتشغيله البرنامج Test.exe ووصف هذا النوع من الملفات هو Rgheed Special Files وطبعاً ايقونه سوف تكون ايقونة البرنامج test.exe .....

طبعاً هذا جميل جداً ويمكنك ان تضعه في الحدث Load التابع للفورم بحيث يقوم بالتسجيل عند تشغيل الفورم ... لكن ما الذي تغير الان بعد الاضافة ؟؟؟

اذا قمت بانشاء ملف جديد وجعلت امتداده rgd فسوف تلاحظ ان الملف اصبح يحمل ايقونة برنامجك وانك اذا نقرت عليه مزدوجاً سوف تجد ان برنامجك قد عمل مباشرة ولكن البرنامج يعمل بالشكل الاعتيادي فما الفرق اذا عندما انقر على البرنامج الاصلي او على احد الملفات التابعة له ؟؟؟
في الواقع انه في البرامج الاخرى تجد انك اذا نقرت على اختصار البرنامج الموجود في القائمة ابدء يعمل البرنامج ( مثلاً المفكرة ) ولكنها تكون خالية اي لا تحتوي على ملف مفتوح بينما عندما ننقر على ملف من النوع txt فان المفكرة تعمل مباشرة لكن مع فرق بسيط هو انها ليست خالية بل ان الملف الذي نقرت عليه قد تم عرض محتوياته داخلها ...

اذاّ كيف عرفت المفكرة اننا نقرنا على ملف معبن ثم قامت بعرضه بينما عندما نقرنا على البرنامج فقط بدون ملف txt تم فتح المفكرة ولكنها لم تعرض شيئاً ؟؟ ...

الذي يحدث هو ان الفيجوال يحتوي على امر معرف فيه هو command وهذا الامر اذا نقرنا على البرنامج مباشرة تكون قيمته "" بينما اذا نقرنا على ملف تابع لبرنامجنا مثل الملف rgd في مثالنا السابق فان هذا الامر تكون قيمته هي اسم الملف المنقور عليه ... فاذا كنا نريد ان نضع محتويات الملف الذي ننقر عليه داخل مربع نص نقوم بالتالي :


PHP كود :
code:Private Sub Form_Load()   Dim F As Integer   Dim S As String    NewFileType "C:\data\Test.exe""rgd""Rgheed Special Files"    If Command <> "" Then       F FreeFile      Open Command For Binary As F      S spcae(LOF(F))      Get #F, 1, S      Close F       Text1.Text = S   End IfEnd Sub 

ما عملناه في السطر السابق هو اننا قمنا بالتأكد من ان المتغير Command ليس فارغاً (حيث انه اذا كان فارغاً فان هذا يعني انه ثم النقر على البرنامج وليس على ملف تابع له) واما اذا كان غير فارغ فمعناه اننا نقرنا على ملف تابع له وبالتالي فان اسم الملف الذي نقرنا عليه موجود في المتغير Command لذى قمنا بعدها بفتح الملف ثم قرأة كل محتوياته الى داخل المتغير S وبعدها قمنا بعرض المتغير S في مربع النص Text1 وبالتالي فان جميع محتويات الملف ثم عرضها ....
ان المفاهيم السابقة مهمة جداً لنا كمبرمجين حيث انه يجب علينا ان نتعامل مع الملفات بشكل اكثر احترافية ... كما اني اود ان انوه الى ان وظائف الامر Command ليس فقط عرض اسم الملف الذي تم النقر عليه وانما تمرير توابع الى داخل برنامجنا بحيث يقوم البرنامج بالتصرف بحسب العامل الذي مرر اليه بواسطة الامر Command ونحن هنا كان التابع المرر الى برنامجنا هو اسم الملف الذي تم النقر عليه لذى فان برنامجنا الان يقوم باحد سلوكين اعتماداً على قيمة Command ... السلوك الاول هو ان يعمل بشكل اعتيادي في حالة ان الامر Command كان خالياً ... والسلوك الآخر هو عرض محتويات الملف اذا كان الامر Command غير خالي (اي انه يحتوي على اسم الملف) ....

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

اتمنى ان تصل اليكم الفكرة ..... اخوكم رغيد ....
متغيب
الرد }}}
تم الشكر بواسطة: Ahmed_Mansoor , Ahmed_Mansoor , Fantastico , العيد1403


الردود في هذا الموضوع
RE: عمل امتداد ملفات خاص بك - بواسطة ahmed20 - 26-03-20, 01:04 PM
عمل امتداد ملفات خاص بك - بواسطة Ahmad Jawad_mybb_import4460 - 19-10-12, 10:31 AM
عمل امتداد ملفات خاص بك - بواسطة karika - 19-10-12, 03:46 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيفية عمل امتداد خاص بك و جعل برنامجك الافتراضي لهذا الامتداد-ادخل وشوف المزيد بالصور Aly El-Haddad 7 6,433 10-09-17, 01:27 AM
آخر رد: تنمية المعرفة
  من المنتدى القديم - عمل امتداد ملفات خاص بك RaggiTech 1 3,025 14-10-12, 01:46 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: