(16-07-18, 07:00 PM)معاذ العامري كتب : [ -> ]لقد قرات هذا الموضوع ولقد افادني كثيرا صحيح ان الموضوع او الفكره التي ابحث عنه موجوده فيه وقد ركز عليها ولاكن هو لم يشرح الطريقه العمليه لفعلها او ربم هو فعل ولاكن لم افهم فانا لست حتى طالب انا مجرد هون لهذه اللغه ولا امتلك الخبره الكافيه
واهذا المنتدى هو اكبر مصادري التعليمية
هو قام بالشرح ولكن بطريقة مطولة غير منظمة او صعبة شوية
وكذلك الاغلب هنا ليس بطلاب حتى انا لست من طلاب البرمجة فالامر يحتاج الى تركيز فقط
على اى حال بكل اختصار الفكرة كلها فى الكود التالى
كود :
My.Computer.Registry.SetValue("HKEY_CLASSES_ROOT\.GMY", "", "Gmyfile")
My.Computer.Registry.SetValue("HKEY_CLASSES_ROOT\gmyfile\DefaultIcon", "", Application.ExecutablePath + " ,0")
My.Computer.Registry.SetValue("HKEY_CLASSES_ROOT\gmyfile\shell\open\command", "", Application.ExecutablePath + " %1")
My.Computer.Registry.SetValue("HKEY_CLASSES_ROOT\gmyfile\shell\Edit\command", "", Application.ExecutablePath + " %1")
السطر الاول وهو
انشاء امتداد محدد اذا يوجد امتداد .gmy فى الرجيستري
السطر التاني وهو جعل الايقونة الافتراضية لامتدادات الملفات
السطر الثالث وهو اذا تم فتح صيخة الامتداد يقوم بفتح عن طريق البرنامج الخاص بك
السطر الرابع اذا تم عمل تحرير لامتداد الملف يقوم بتحرير من خلال البرنامج الخاص بك
طيب فى السطر الثالث والرابع كيف يعرف اسم البرنامج الخاص بك وهو غير مذكور
بخصوص هذا الجزء
كود :
Application.ExecutablePath + " %1"
هو بيقوم بتحويله بالنهاية زى مثلاً
بحيث انه فكرة
كود :
Application.ExecutablePath
هو مسار البرنامج على الجهاز اذا كان على السي ولا الدى او اى مسار
ومن حيث 1% هو اسم البرنامج الخارجى مع الامتداد بتاه بمعنى
لو كان البرنامج المستخرج بالنهاية اسمه name.exe هياخد الاسم ده
يعنى الاسم الافتراضي لاسم المشروع ياليد الامتداد .exe
وبخصوص الـ
كود :
Application.ExecutablePath + " ,0"
وهو نفس الفكرة مسار البرنامج على الجهاز
لكن عن الجزء
وهو ترتيب الايقونة فى Resoures واذا لم يجد سيقوم باخذ ايقونة البرنامج طول ما هو 0
اذا تحول 0 : الى رقم اخر
فيقوم باخذ ترتيب الايقونات داخل Resoures 0 يعنى الايقونة الاولى 1 يعنى الايقونة الثانية ... الخ
حتى الان كده تم شرح الكود
طيب ناتى هنا مثلاً كيف جعل الايقونة افتراضية عند اختيار البرنامج من خلال Open With
كل الفكرة قبل تنفيذ الكود فى اللود وضع كود التحقق
اذا كان الامتداد سين 1 مثلاً موجود فى الرجيسترى اذا تحقق
يقوم بالتحقق مجدداً اذا كان فتح الامتداد هو مسار البرنامج الخاص بك اذا تحقق
يقوم بالتحقق مجدداً اذا كان ايقونة الافتراضية للامتداد نفس ايقونة المحدد منك اذا لم يحقق
يقوم بتطبيق كود اللود
حتى لا تجعل عند تشغيل البرنامج يقوم بتنفيذ البرنامج افتراضي على امتداد محدد اجبارى
وكذلك لا يقوم بتكرار التنفيذ فى كل مرة يفتح البرنامج
اتمنى ان يكون الشرح بسيط وان الفكرة وصلت كاملاً
تحياتى لك
وتمنياتى لك التوفيق