الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أعمل Dll للعمل على المجلد في جهاز الكمبيوتر

مغلق
بدأه MiCcSoft في 9 ديسمبر 2006 · 11 رد · 1,114 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمين الرحيم

واجهتني مشكلة وهي في صنع مجلد في جهاز الكمبيوتر وقد نجحت في

وضع المجلد في جهاز الكمبيوتر لكن المشكلة في فتحه . الكود المستعمل :

		'يجب فتح المسار التالي في الريجستري لإضافة كلاسيد 
		Dim So As Microsoft.Win32.RegistryKey = Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\", True)
		'تعريف الكلاسيد
		Dim ClaStr As String = "{416651E4-9C3C-11D9-9BDE-F66BAD1E3F3A}"
		'إضافة الكلاسيد
		So.CreateSubKey(ClaStr)
		'الأن هذه الكلاسيد يجب وضعها في المسار 
		'HKEY_CLASSES_ROOT\CLSID\
		So.Close()
		Dim Ty As Win32.RegistryKey
		Ty = Win32.Registry.ClassesRoot.OpenSubKey("CLSID", True)
		'إضافة الكلاسيد إلى المجلد الهدف
		Dim B As Win32.RegistryKey
		B = Ty.CreateSubKey(ClaStr)
		'صنع مجلدات هامة للكلاسيد
		B.SetValue("", "MiCcSoft")
		B.CreateSubKey("DefaultIcon").SetValue("", "c:\windows\explorer.exe,0)")
		Dim N As Win32.RegistryKey
		N = B.CreateSubKey("InprocServer32")
		N.SetValue("", "c:\windows\system32.dll")
		N.SetValue("ThreadingModel", "Apartment")
		Dim Bs() As Byte = {Byte.Parse(0), Byte.Parse(0), Byte.Parse(4), Byte.Parse(240)}
		B.CreateSubKey("ShellFolder").SetValue("Attributes", Bs, Win32.RegistryValueKind.Binary)

في السطر

N.SetValue("", "c:\windows\system32.dll")

يتم تحديد Dll التي ستقوم بفتح المجلد والسؤال هو كيف يتم برمجة مثل هذه Dll مع العلم أني

استخدمت

Windows control library

Class Library

فهل الفيجوال بيزك 2005 لا يبرمج مثل هذه Dll

وقد رأيت عدة برامج وضعت مثل هذه المجلدات مثل Nokia Pc Suite و Nero 7.0

#2

السلام عليكم

ما الذي تريدهُ بالضبط؟ الـ Class Library هو المعني بإنشاء الملف dll file لكن

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

لابد أن تقرء عن الـ Reflection وهو ان يكون البرنامج مرن بحيث يستوعب الملف الـ dll المنشئ لهُ

كعملية تحديث للبرنامج أو إضافة أدوات , إلى أخره, هنالك كتب كثيرة متخصصة في هذا المجال

ابحث في موقع امزون الشهير بالتوفيق إن شاء الله.

تم تعديل هذه المشاركة بواسطة الغملاسي في 13 ديسمبر 2006 في 00:22

في المثال يتضح المقال

#3

أخي المشكلة ليست في برمجة Dll لكن في كيفية

تشغيله مع المجلد ؟! حيث جربت برمجة Dll مرئية ولم تنجح

حيث لم يقم Explorer بتقبلها

#4

السلام عليكم

اقتباس
حيث جربت برمجة Dll مرئية ولم تنجح

عزيزي أحسن اللهُ إليك, ملف الـ DLL ليس مرئي البتة, وانما مكتبة لاحقة لبرنامج ما.

فالـ Dynamic Link Library هو عبارة عن ملف تنفيذي دون واجهةٍ مرئية.

في المثال يتضح المقال

#6

السلام عليكم

اري ان تريد استخدام مسجل النظام في انشاء فضاء اسماء حتي تعرض في نافذة الجهاز.

وهذه المقالات توضح كيفية صنع فضاء اسماء برمجياً وليس من خلال مسجل النظام.

Windows Shell

Create Namespace Extensions for Windows Explorer with the .NET Framework

Creating a Shell Namespace Extension

مواضيع متنوعة

#7

السلام عليكم

اقتباس
أقصد Windows Control Library

حتى هذا لا يصلح ان يعمل بذاته.

اخي العزيز, اعيد و اكرر ان هذه مكتبات لا تعمل لوحدها, وانما هي لواحق للبرامج وليست برامج بعينها.

السلام عليكم.

في المثال يتضح المقال

#8

أخي ولله أعلم أنها لاتعمل بنفسها لكن كنت أريد التعبير عن Windows Control library

وظهرت هذه الكلمة :angry: :angry: :angry: ( :D )

والحمد لله لاقيت طلبي في رد الاخ moudey

تم تعديل هذه المشاركة بواسطة MiCcSoft في 13 ديسمبر 2006 في 01:45

#9

هذا كلاس جاهز لمشروعك.

http://www.ssware.com/eznamespaceextension...eextensions.htm

ارجو ان تكون الروابط مفيدة.

مواضيع متنوعة

#10

إليك هذا المثال يوضح كيفة اضافة فضاء اسماء الي جهاز الكمبيوتر وغيرة, من خلال مسجل النظام.

Create_CLSID_in_Control_Panel__Desktop__My_Computer.zip

طريقة فتح المجلد بواسطة هذا الامر

Explorer.exe "C:\Program Files"

حيث C:\Program Files هو مسار المجلد و Explorer.exe هو امر فتح المجلد

بالتوفيق ان شاء الله.

تم تعديل هذه المشاركة بواسطة Moudey في 13 ديسمبر 2006 في 04:11

مواضيع متنوعة

#11

وهذا نفس المثال السابق ولكن عدلت بة بعض الشئ. :D

AddNameSpace.zip

مواضيع متنوعة

#12

هذا تحديث للكود وجعلة افضل مما كان حيث تم.

اضافة الي القائمة ليتم حذف الكائن.

و اضافة الي القائمة ليتم التحكم والتعديل.

يمكن اضافة اكثر من كائن.

يمكنك انشاء اختصار لمجلد علي هيئة قرص صلب عن طريق هذا الامر في الويندوز

SUBST Z: C:\WINDOWS

AddNameSpace.zip

بالتوفيق ان شاء الله

مواضيع متنوعة

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…