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

  • ♥♥ ادعوا اصدقائك للاشتراك معنا لتصل جميع اعلانات التوظيف واخر الاخبار والمواضيع الى بريدكم الالكترونى مباشرة ♥♥

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

  • ♥♥ ( لمتابعة آخر الاعلانات والوظائف والمواضيع والاخبار أولا بأول يرجى مراجعة موقعنا من كل حين لآخر حيث يتم النشر وبشكل مستمر لكافة المواضيع المتنوعة والهامة ) ♥♥

* منتديات هندسة بلا حدود * يتم تفعيل الحساب خلال 24 ساعة من قبل ادارة المنتدى او من خلال ايميل تسجيل العضو مباشرة *

ضع إعلانك معنا مجانا * وبدون تسجيل * عمل امتداد ملفات خاص بك في الفيجوال بيسك 6 Images21


شاطر


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

نبيل الدم
البيانات
البلد البلد : الاردن
الاوسمة الخاصة الاوسمة الخاصة : ادارة المنتدى
الجنس الجنس : ذكر
عدد المساهمات عدد المساهمات : 4391
نقاط نقاط : 69715
السٌّمعَة السٌّمعَة : 23

الإتصالات
الحالة:
وسائل الإتصال:
https://khedmahle.comhttps://www.facebook.com/Brmjyatrom3dhttps://twitter.com/Brmjyatrom3dhttps://pinterest.com/https://www.estaql.com

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

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





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



عمل امتداد ملفات خاص بك في الفيجوال بيسك 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 ثم تقرير العمل او السلوك المطلوب من البرنامج بعدها ....








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


" ======================================================= "

" انتهى الاعلان او الموضوع او الخبر "


خبير سيو تواصل معي : خبير سيو

ميز اعلانك من هنا : اعلان رابط نصي دو فلو على منتديات هندسة بلا حدود 5$ فقط لشهر واحد - متجر خدمة لي

اعلان مميز : امتلك متجر الكتروني احترافي مع منصة استقل

خدمات تحسين سيو المواقع



" فضلا وليس امرا شارك الموضع مع الجميع عبر المواقع لتعم الفائدة "
" اعلن هنا لمدة اسبوعين ب 5$ دولار انقر على الاعلان للحجز من خلال متجر خدمة لي او راسل نبيل الدم"




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


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

امتلك متجر الكتروني

يعتبر موقع منتديات هندسة بلا حدود من المنتديات المشهورة والمهمة ومن المواقع الهندسية العربية على الانترنت ،وحتى الآن عدد الأعضاء المنتسبين له في المنتديات كأكبر تجمع هندسي عربي حتى الآن.
زيادة متابعين تيك توك
[url=https://estaql.com]خبير سيو
اعلانات سناب
محامي في الرياض
محاسب قانوني
شركة سيو
زيادة المتابعين
خدمات المحاسبة في الأردن


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

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

مواضيع مماثلة

» الشامل في الفيجوال بيسك 6
» كتاب جميل لتعلم الفيجوال بيسك 6
» ما هو الفيجوال بيسك ؟ ادخل هنا تلاقي الشرح
» قناة لتعليم الفيجوال بيسك على اليوتيوب باسم نور العلم
» كتاب تعليم برنامج الفيجوال بيزك 6
امتلك متجر الكتروني احترافي مع منصة استقل الكلمات الدلالية (Tags)
منصة استقل رابط الموضوع
odessarab bbcode BBCode
odessarab HTML HTML كود الموضوع
الإشارات المرجعية والمشاركة عبر مواقع التواصل الاجتماعي
التعليق على الموضوع بواسطة الفيس بوك



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

هام جداً: قوانين المساهمة في المواضيع. انقر هنا للمعاينة



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

مواقعنا
لطلب الإعلان لدينا تواصل معنا واتساب
مواقعنا

اخبار سرايا العاجله الاردن

حي نزال شارع الدستور

سيريال نمبر داونلود مانجر

الرقم التسلسلي internet download manager مدى الحياة

الرقم التسلسلي للداونلود مانجر

رقم تسلسلي
1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20
تبادل إعلاني

تبادل إعلاني نصي معنا على منتدياتنا باك لينك خرافي



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

يعتبر موقع منتديات هندسة بلا حدود من المنتديات المشهورة والمهمة ومن المواقع الهندسية العربية على الانترنت ،وحتى الآن عدد الأعضاء المنتسبين له في المنتديات كأكبر تجمع هندسي عربي حتى الآن .ويهدف الموقع إلى نشر المعرفة الهندسية وتقديم كل ماله فائدة للمهندسين والفنيين والمهتمين من خلال أقسامه العلمية والهندسية المتعددة ،بالإضافة إلى وجود أقسام عامة تستقطب الكثير لمختلف النقاشات الهادفة.

جميع الحقوق محفوظة © منتديات هندسة بلا حدود Powered by phpBB ® Copyright © 2012 - 2024

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