في بعض الأحيان، إذا كنت مستخدمًا لنظام Windows، فإن هناك احتمالًا كبيرًا أنك قد اضطررت في بعض الأحيان إلى تشغيل أداة regsvr32.exe
لـ “تسجيل ملف DLL”. إذا كنت قد قمت بذلك، فإنك ربما لم تكن على علم بتحديد ما يحدث بالضبط تحت الغطاء. تُستخدم هذه الأداة الغامضة لإدارة عناصر التوصيل والتضمين (OLE) التي تستخدمها العديد من تطبيقات Windows.
ولكن ما هي بالضبط عنصر التحكم OLE ولماذا ترغب في تسجيل عنصر تحكم OLE؟ في هذا البرنامج التعليمي، ستتعلم العديد من الطرق لتثبيت أو إلغاء تثبيت أو تسجيل أو إلغاء تسجيل عنصر تحكم OLE باستخدام أداة regsvr32.exe
.
المتطلبات المسبقة
تأكد من أن لديك المتطلبات أدناه لمتابعة تشغيل أداة regsvr32.exe
:
- نظرًا لأن أداة regsvr32.exe مضمنة في معظم إصدارات Windows، تحتاج فقط إلى كمبيوتر يعمل بنظام Windows ويحتوي على حساب مسؤول.
- ستحتاج إلى PowerShell 7 للاستفادة من البرنامج النصي PowerShell المضمن في هذا البرنامج التعليمي.
ما هي عناصر التحكم OLE؟
قبل أن تتعلم كيفية استخدام أداة regsvr32.exe
، يجب أن تكون لديك فهم أولي حول ما يديره هذا الأداة، وهي عناصر التحكم OLE.
تعتبر وحدات التحكم OLE تقنية متخصصة لنظام ويندوز تم تطويرها لتسهيل تضمين وربط المستندات والكائنات الأخرى. لقد تطورت هذه التقنية على مر السنين، وتم بناء مكونات مختلفة فوق تقنية OLE.
قد سمعت عن نموذج كائن المكون (COM)، نموذج كائن المكون الموزع (DCOM)، أو عن وحدات التحكم ActiveX. كل هذه التقنيات إما تم بناؤها على تقنية OLE أو تعتبر تمديدًا لها، وتحدد واجهة قياسية للوظائف المكتوبة بلغات مختلفة.
تم إهمال ActiveX ولكنه لا يزال متاح عبر Internet Explorer على ويندوز 10، ولكن ليس على Microsoft Edge.
تسجيل وحدات التحكم OLE
الآن بعد أن فهمت ما يفعله أداة regsvr32.exe
، حان الوقت لتسجيل وحدة تحكم OLE، وهناك العديد من الأوامر المختلفة لفعل ذلك. اختر أمرًا واحدًا من الأوامر المذكورة أدناه أو جرب كل واحد منها على حده.
يمكنك تسجيل وحدات التحكم OLE عبر PowerShell أو سطر أوامر ويندوز. على أي حال، تأكد من تشغيل سطر الأوامر كمسؤول لضمان تسجيل الوحدة التحكم بشكل صحيح.
عرض نتيجة الواجهة الرسومية (GUI)
تسجيل ملف DLL باستخدام regsvr32
، في أبسط حالة استخدام، يتضمن تمرير مسار الملف DLL إلى الأداة. بشكل افتراضي، ستعرض regsvr32
نافذة منبثقة تشير إلى نجاح (أو فشل) العملية. لتسجيل ملف DLL، قم بتوفير اسم الملف أو المسار الكامل للملف كما هو موضح أدناه.
تشغيل الأمر التالي سينشئ الفئات السجلية الضرورية للتحكم في OLE المستهدف في المفتاح HKEY_CLASSES_ROOT\CLSID لحالات x64 أو HKEY_CLASSES_ROOT\WOW6432Node\CLSID لحالات x86.
عند النجاح، سترى نتيجة GUI تشير إلى أن DllRegisterServer
نجح بنجاح.

عند تسجيل تحكم OLE، سيطبق
regsvr32.exe
مسار البحث في النظام. لذلك، إذا كنت بحاجة لتسجيل ملف محدد خارج ذلك المسار، فمن الأفضل تحديد المسار المطلق للملف.
تسجيل تحكم OLE بصمت
عند تشغيل الأوامر، ليس دائمًا مرغوبًا فيه عرض نافذة منبثقة GUI. لذلك دعنا نتعرف على كيفية كتم أي نافذة منبثقة GUI عند تسجيل تحكم OLE.
لكتم النوافذ منبثقة GUI، قم بتشغيل regsvr32
تليه اسم الملف DLL (msxml3.dll
) والمفتاح /s
لتسجيل التحكم OLE بصمت. السلبية الوحيدة لهذا الأمر هي أنك ستكتم أيضًا أي رسائل خطأ.
هناك مفتاح غير موثق،
/e
، يوجد، يكتم فقط رسالة النجاح GUI ولكن يظهر رسالة الخطأ GUI—ذكي!

تسجيل التحكم OLE وتحديد إجراء التثبيت
عند تحديد مكتبة DLL لتسجيل OLE، أنت تقوم بدعوة طريقة DllRegisterServer
فقط، ولكن هناك أوقات عندما تحتاج إلى اتخاذ إجراء بعد التسجيل. يمكنك القيام بذلك عند تحديد معامل /i
.
على سبيل المثال، يمكنك تمرير سلسلة إدخال (U
) إلى المعامل /i
والتي ستستدعي طريقة DllInstall
وطريقة DllRegisterServer
في وقت واحد.
تسمح طريقة
DllInstall
بأن يقوم أداةregsvr32.exe
بتثبيت مكتبة DLL بأكثر من طريقة وتفعيل مختلف لمكتبة DLL واحدة.

تحديد إجراء التثبيت دون استدعاء طريقة DllRegisterServer
ربما تريد فقط تثبيت تحكم OLE دون إعادة تسجيله. إذاً، قم بتشغيل الأمر التالي.
يستخدم الأمر أعلاه المعامل /n
لمنع استدعاء طريقة DllRegisterServer
لمكتبة DLL shell32.dll في طريقة التثبيت، DllInstall.

إلغاء تسجيل تحكم OLE باستخدام regsvr32.exe
إذا مررت بتسجيل تحكم OLE بدون أخطاء، فهذا أمر مريح. ولكن قد تحين لحظة عندما تحتاج إلى إلغاء تسجيل تحكم OLE عندما يتعارض مع آخرين. لحسن الحظ، تقدم أداة regsvr32.exe
القدرة على إلغاء التسجيل وإلغاء تثبيت تحكم OLE.
لإلغاء تسجيل وإلغاء تثبيت تحكم، قم بتشغيل regsvr32.exe
وقم بتمرير المعلمة /u
لإلغاء تسجيل التحكم OLE. يمكنك أن ترى في النتيجة الرسومية أدناه أن مكتبة الـ msxml3.dll تم إلغاء تثبيتها بنجاح.
لتشغيل إجراء مع عملية الإلغاء التسجيل، قم بتمرير سلسلة الإجراء (
U
) إلى المعلمة/i
. ثم سيقوم أمرregsvr32
بدعوة الأسلوبDllInstall
بتلك الإجراء كإلغاء تثبيت، مثل:regsvr32 /i:action /U msxml3.dll
.

معالجة الأخطاء لـ regsvr32.exe
لقد واجهت تسجيل تحكم OLE بنجاح، ولكن ماذا لو واجهت أمر التسجيل خطأ؟ هناك عدد قليل من الأخطاء التي قد تظهر عند محاولتك لإدارة التحكم. يمكن أن تكون هذه الرسائل مبهمة في بعض الأحيان ولكن يتم تفكيكها أدناه لتعرف ما الذي يتسبب فيها.
FAIL_ARGS | ⦿ “Unrecognized flag” ⦿ “Extra argument on command line” ⦿ “This command is only valid when an OLE Custom Control project is open” ⦿ “No DLL name specified” |
Implies that a command-line argument was incorrect. |
FAIL_OLE | “OleInitialize failed” | Implies that there was an error in properly initializing the OLE subsystem. |
FAIL_LOAD | “LoadLibary(<dllname) failed>“ | This can be a host of reasons such as a dependent library missing, the DLL is inaccessible due to permissions, or the file is missing. |
FAIL_ENTRY | ⦿ ” was loaded, but the entry point was not found. does not appear to be an .DLL or .OCX file” ⦿ ” was loaded, but the entry point was not found. may not be exported or a corrupt version may be in memory. Consider using PView to detect and remove it.” ⦿ ” was loaded, but the entry point was not found. may not be exported, or a corrupt version may be in memory. Consider using WPS to detect and remove it.” |
Implies that the entry point in the DLL, or function name, is missing. |
FAIL_REG | “<DLLEntryPoint> in <DLLName> failed“ | Implies that despite all the prior steps completing the system still failed to fully register the DLL. |
توسيع أداة regsvr32.exe
باستخدام PowerShell
نظرًا لتفضيل regsvr32.exe
للإخراج الرسومي، قد تكون الأتمتة تحديًا. للتغلب على هذا التحدي، يمكنك لف الأداة regsvr32.exe
في وظيفة PowerShell. من خلال إنشاء وظيفة PowerShell، يمكنك تشغيل regsvr32.exe
تمامًا كما لو كانت cmdlet PowerShell الأصلية.
كمثال، تحقق من وظيفة PowerShell Invoke-RegSvr32
أدناه. تقوم هذه الوظيفة باستدعاء أداة regsvr32
وتستخدم PowerShell لالتقاط رمز الخروج ومعالجته وفقًا لذلك. ومع تطبيق التحقق من الوسيطة مسبقًا، يمكنك حتى تجنب الأخطاء تمامًا!
لتجربة الوظيفة أدناه، افتح نافذة PowerShell جديدة وانسخ والصق الكود فيها. بعد ذلك، ستكون قادرًا على استدعاء الوظيفة كما هو موضح أدناه.
فيما يلي بعض الأمثلة على كيفية استخدام وظيفة Invoke-RegSvr32
.

Invoke-RegSvr32
PowerShell Commandالاستنتاج
حتى الآن، لقد تعلمت الطريقة المناسبة لتسجيل وإلغاء تسجيل ملفات DLL ومعالجة الأخطاء. على الرغم من أن regsrv32.exe
قد لا يُستخدم كثيرًا في المهام اليومية، إلا أنه يوجد أوقات معينة تحتاج فيها إلى تسجيل أو إلغاء تسجيل ملف DLL.
للتوسيع في هذا المجال أكثر، يمكنك توسيع PowerShell ليشمل المزيد من الفحوصات والحالات الحدودية. يمكنك حتى إنشاء وظيفة PowerShell لعرض الضوابط المسجلة في موقع التسجيل CLSID
!