منتديات هندسة بلا حدود
نرحب بكم ونتمنى لكم اجمل الاوقات
يرجى تسجيل دخولك أو التسجيل في المنتدى
عملية التسجيل سهلة جدا جدا ويمكنكم التسجيل دون الحاجة الى بريد الكتروني في حال لا يوجد لديكم,
فقط بعد التسجيل اذهب الى قسم تفعيل العضوية وطلب تفعيل حسابك مجانا, اهلا بالزوار
****************
ضع إعلانك معنا مجانا وبدون تسجيل (نحقق لك الاشهار والانتشار وزيادة الاعضاء والزوار) مجانا
****************
بسم الله . ماشاء الله..لاقوة الا بالله..اللهم صلى وسلم وبارك على سيدنا محمد
تسجيل دخول
اعلانات ادارية
  • ♥♥ ضع إعلانك معنا مجانا وبدون تسجيل (نحقق لك الاشهار والانتشار وزيادة الاعضاء والزوار) ♥♥

  • ♥♥ راسلنا لوضع اعلانك وستحصل على مميزات اعلانية خيالية ♥♥

أهلا وسهلا بك في منتديات هندسة بلا حدود .

css, html, java, games, cods, facebook, google, gmail, yahoo, hotmail, free ,للبيع, للشراء, للإيجار, عقارات, سيارات, اجهزة كهربائية , اثاث, خدمات, نقل عفش, بناء, كمبيوتر, صيانة, السياحة, وظائف, في الأردن , إعلانات, مبوبة, منتديات, ‏هندسة, اعلانات, مجاني


شاطر|


بيانات كاتب الموضوع
عمل امتداد ملفات خاص بك في الفيجوال بيسك 6
كاتب الموضوعرسالة
المعلومات
الكاتب:
اللقب:
المدير العام
الرتبه:
المدير العام
الصورة الرمزية

avatar
البيانات
البلد البلد : الاردن
الاوسمة الخاصة الاوسمة الخاصة : ادارة المنتدى
الجنس الجنس : ذكر
عدد المساهمات عدد المساهمات : 2078
نقاط نقاط : 17559
السٌّمعَة السٌّمعَة : 21
تاريخ التسجيل تاريخ التسجيل : 20/07/2012
المستوى التعليمي المستوى التعليمي : Mechatronics & Control Engineering
العمل/الترفيه العمل/الترفيه : متابعة التكنولوجيا
المزاج المزاج : معتدل
تعاليق تعاليق : المدير العام لمنتديات هندسة بلا حدود
ஜ۩‎®️‎۩ஜ(م.نبيل الدم)ஜ۩‎®️‎۩ஜ

الإتصالات
الحالة:
وسائل الإتصال:
http://enging.yoo7.comhttp://www.facebook.com/Brmjyatrom3dhttps://twitter.com/Brmjyatrom3d

موضوع: عمل امتداد ملفات خاص بك في الفيجوال بيسك 6 الإثنين 08 سبتمبر 2014, 7:22 am

اذا احتوت المشاركة صورا - قم بالضغط عليها لعرضها بحجمها الطبيعي




عمل امتداد ملفات خاص بك في الفيجوال بيسك 6


السلام عليكم ورحمة الله وبركاته ....


نحتاج في كثير من الاحيان الى جعل برامجنا تتعامل مع نوع معين من الملفات كما هو الحال مع معظم البرامج المتخصصة فمثلاً الورد يفتح ملفات النوع Doc و الرسام ملفات bmp وهكذا ....
وما نسعى اليه هنا هو كيفية انشاء نوع خاص ببرامجنا وسوف نناقش معاً آلية العمل الذي يقوم به نظام التشغيل لفتح ملف بواسطة برنامج معين ثم سوف اقدم بعد ذلك اجراء بسيط يقوم باضافة نوع جديد من الملفات الى نظام بحيث لايتجاوز الامر سطراً واحداً في برنامجك !! ....


اولاً كوننا مبرمجون يجعلنا لا نكتفي بمعرفة الكود اللازم لتسجيل نوع جديد (وهو موجود بكثرة في منتدانا) ولكن يتوجب علينا فهم طبيعة ما يحدث عندما يقوم المستخدم بالنقر المزدوج على احد الملفات الى ان يتم فتح الملف بواسطة البرنامج المحدد والطريقة في الواقع بسيطة حيث انك اذا نقرت على احد ملفات الورد (ذات الامتداد doc) فانه اولاً يقوم نظام التشغيل بالبحث في الريجيستري عن لاحقة الملف الذي ثم النقر عليه ويكون البحث منصباً على المفتاح الاساسي HKEY_CLSSSES_ROOT وذلك بالبحث عن مفتاح يكون اسمه "doc." ...... واذا لم يجد هذا المفتاح فانه مباشرة يعرض مربع الحوار (فتح بواسطة) .... اما اذا وجد المفتاح فانه ينظر في القيمة التي داخله واذا كان برنامج الورد الذي تستخدمه هو من النوع xp كما في حالتي انا فسوف يجد ان قميته هي "Word.Document.8" والتي تعني ان بيانات الملف الذي يفتح هذا النوع من الملفات doc موجودة في المفتاح Word.Document.8 فيقوم نظام التشغيل بالبحث عن هذا المفتاح كي يتعرف على البرنامج الذي يجب ان يشغله لفتح هذا النوع من الملفات وعندما يجده يبدء بقرائة البيانات من داخله واليك بعض التفصيل فيما يجب ان يحتويه هذا المفتاح ....


ان افضل طريقة لفهم ما يتم شرحه هنا ان تقوم بفتح الريجيستري وتتبع الخطوات التي اوضحها هنا فمثلاً ابحث عن المفتاح .doc وسوف تجد بمجرد ان تختارة انه يعرض لك في القئمة اليمنى من الريجيستري اسم المفتاح الذي يجب ان تبحث فيه وهو في مثالنا Word.Document.8 ثم قم بالنقر على هذا المفتاح ماذا ستجد ؟ ... سوف تجد مباشرة في يمين الشاشة في القيمة المسماه (Defalut) او القيمة الافتراضية عبارة كهذة "مستند Microsoft Word" وهذة العبارة هي التي تظهر عندما تقوم بالنقر على اي ملف ثم اختيار خصائص فانه سوف يتم عرض نوع الملف وبجواره هذا التعليق والذي يفيد بان نوع هذا الملف هو ملف ورد وكذلك الحال بالنسبة لاي نوع آخر من الملفات كملفات الرسام تجد ان نوعها يوجد به تعليق مثل "صورة نقطية" وبهذا نكون قد عرفنا اين يمكن وضع تعليق على نوع ملفاتك الجديد ويمكنك جعلها مثلاً "برنامج فلان للتحرير النصوص" ....


طبعاً هذا فقط عبارة نوع الملف ولكن يوجد الكثير داخل المفتاح Word.Document.8 قم الان بالنقر على علامة الجمع الموجودة بجواره لتمديده ورؤية المفاتيح التي بداخله سوف تجد مفاتيح عدة والتي تهمنا منها اتنان هما المفتاح Default Icon و المفتاح Shell ...


المفتاح Default Icon :
يحتوي على مسار الملف الذي يملك ايقونة برنامجك بحيث تصبح مفاتك لها ايقونة خاصة وهذا مهم جداً فمثلاً ترى ان ملفات الصوت لها يونة خاصة بينما ملفات قواعد بيانات الاكسس لها ايقونة مميزة لها وبذى يسهل تمييز الملفات من ايقوناتها مباشرة ... وملف الايقونة يمكن ان يكون احد ثلاثة انواع اما ملف Ico عادي وتجد الكثير منها مع برنامج الفيجوال في المجلد Graphics ثم Icons .... ويمكن ان تكون ملف DLL حيث ان هذة الملفات يمكن ان تحتوي على اكثر من ايقونة واحدة ويتم تحديد الايقونة التي نريدها عن طريق الرقم مثلاً :




كود:
C:\Windows\System32\Shell32.dll,3




ويعني السطر السابق ان ايونةالبرنامج موجودة في الملف Shell32.dll في الموقع الرابع لان الترقيم يبدء من الصفر ...


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


هذا كان لتحديد ايقونة لمفاتك اما الان سوف نستعرض محتويات المفتاح Shell وهي الاهم ..
نلاحظ جميعاً اننا اذا نقرنا على اي ملف بالزر الايمن فان تظهر قائمة تحتوي على اوامر ثابثة في كل الملفات وهي في الجزء الاسفل كالامر حذف و اعادة تسمية وخصائص و ... و .... و .... بينما القسم الاعلى نجد فيه اوامر تختلف من ملف الى آخر مثلاً نجد في ملفات الرسام الامر فتح و عرض وطباعة بينما نجد في ملفات الصوت wav امر جديد مثل تسجيل و تشغيل وهناك اشياء ثابتة ايضاً .... وكل ذلك موجود في القسم shell حيث انك اذا فتحته تجد مفاتيح اخرى مثل :
open وقميتة "فتح"
Print وقيمته "طباعة"
وغيرها اي ان الاسم Open هو اسمة في الريجيستري اما الاسم فتح فهو الذي سوف يظهر في القائمة اليمنى يعني كتجربة بسيطة غير الكلمة فتح الى العبارة "سبحان الذي هدانا لهذا" ثم اذهب الى اي ملف ورد في جهازك وانقر بالزر الايمن وسوف ترى ان الامر فتح اختفى واصبح مكانه العبارة التي كتبناها واذا نقرت عليها يتم فتح الورد كما كان الامر سابقاً اي ان الذي غيرناه هو الاسم فقط وانما العمل ظل كما كان سابقاً ... (قم الان باعادة الوضع كما كان سابقاً واعيد الكلمة فتح) ...


لاحظ الان ان داخل كل مفتاح من المفاتيح المحتواه داخل Shell يوجد بها مفتاح باسم Command اي انه داخل المفتاح Open يوجد مفتاح command وكذلك الحال داخل المفتاح Print يوجد ايضا command ووظيفة هذا المفتاح ان يحتوي على القيمة التي تدل على البرنامج الذي نريد تشغيله اي انه ماذا نريد ان يحصل اذا نقرنا على الامر فتح .... مباشرة يتم تشغيل البرنامج الموجود داخل الـ Command التابع للمفتاح Open .... واذا نظرنا في قمية الكوماند التابع للفتاح open في مثالنا (برنامج الورد) فاننا سوف نجد فيه مسار برنامج الورد متبوعاً بالعلامة %1 وهي علامة مهمة جداً واذا حذفتها فان الملف لن يعمل ....


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


واكرر انك اذا لم تكن واثقاً مما تفعل انصح بتجاهل الجزء السابق لاننا سوف نقوم بكل ماسبق برمجياً دون الحاجة الى فتح الريجستري وقد كان ذلك للفائدة فقط ...
الان سوف نتعرف على الاجراء الذي سوف يقوم بتسجيل نوع الملفات الجديد في النظام ... والامر الذي سوف نتسخدمه هو NewFileType وهذا الامر يحتوي على ثلاثة بارميترات فقط وهي كالتالي :


code:ProgramPath اسم برنامجك ومساره
Extension الامتداد
Description وصف النوع الجديد


يتبع في الجزء الثاني ...








والشفرة اختصاراً ستكون كالتالي :




كود:
code:Sub NewFileType(ProgramPath As String, ByVal Extension As String, Description As String)
Dim W As Object
Dim E As String
Set W = CreateObject("Wscript.shell")
If Left(Extension, 1) <> "." 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


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






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




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


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


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


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


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


كود:
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 If
End Sub




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


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








للأمانة الموضوع منقول للفائدة من منتديات برامج برو


" شارك الموضع مع الجميع عبر المواقع لتعم الفائدة "




 الموضوع الأصلي : عمل امتداد ملفات خاص بك في الفيجوال بيسك 6 // المصدر : منتديات هندسة بلا حدود // الكاتب:نبيل الدم


توقيع العضو ; نبيل الدم



منتديات, ‏هندسة, اعلانات, مجانا, مجانية, الاشهار, برامج, كهرباء, برمجة, الكترونيات, التحكم, المبرمج, الحماية, التصميم, Control, Mechatronics, facebook, plc, motor, star, delta, ats, google, app, cnc,
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
ஜ۩‎®‎۩ஜ(م.نبيل الدم)ஜ۩‎®‎۩ஜ


عمل امتداد ملفات خاص بك في الفيجوال بيسك 6

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة
الإشارات المرجعية والمشاركة عبر مواقع التواصل الاجتماعي
التعليق على الموضوع بواسطة الفيس بوك



الــرد الســـريـع



آخر المواضيع في منتديات هندسة بلا حدود
الموضوع
تاريخ ارسال المشاركة
بواسطة
رسائل مجانية بدون انترنت 3
رسائل مجانية بدون انترنت 2
رسائل مجانية بدون انترنت
لاول مرة الحاسبة لعمل اضافي تحصل على نتيجة بهز الهاتف او بالنقر على زر الدولار ساين $
رسائل مجانية غزلية
برنامج الوسام الملكي
لعبة ترتيب الارقام من تصميم نبيل الدم حملها والعب مجانا
Design of production lines and cnc programs for production machines
Development on industrial control systems and machinery
HVAC R&D Control Scada program
اليوم في 2:18 pm
اليوم في 2:17 pm
اليوم في 2:16 pm
اليوم في 2:15 pm
اليوم في 2:13 pm
الثلاثاء 17 أبريل 2018, 8:41 pm
الثلاثاء 10 أبريل 2018, 7:19 pm
الثلاثاء 10 أبريل 2018, 6:53 pm
الثلاثاء 10 أبريل 2018, 6:50 pm
الثلاثاء 10 أبريل 2018, 6:43 pm

Flag Counter منتديات هندسة بلا حدود


تعرف على منتديات هندسة بلا حدود

يعتبر موقع منتديات هندسة بلا حدود من المنتديات المشهورة والمهمة ومن المواقع هندسية العربية على الانترنت ،وحتى الآن عدد الأعضاء المنتسبين له في المنتديات كأكبر تجمع هندسي عربي حتى الآن .ويهدف الموقع إلى نشر المعرفة الهندسية وتقديم كل ماله فائدة للمهندسين والفنيين والمهتمين من خلال أقسامه العلمية والهندسية المتعددة ،بالإضافة إلى وجود أقسام عامة تستقطب الكثير لمختلف النقاشات الهادفة.
جميع الحقوق محفوظة 2017 © منتديات هندسة بلا حدود Powered by phpBB ® Copyright © 2012 - 2017 تصميم منتديات هندسة بلا حدود نبيل الدم