حياة

تسجيل DLL وعناصر تحكم ActiveX من تطبيق دلفي

تسجيل DLL وعناصر تحكم ActiveX من تطبيق دلفي


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

الميزة الشائعة لـ Delphi هي نشر مشروع تطبيق مع ملف قابل للتنفيذ (exe). ومع ذلك ، إذا لم يتم تسجيل عناصر تحكم DLL أو ActiveX في مشروعك على أجهزة المستخدمين ، فسيتم عرض "EOleSysError" استجابةً لتشغيل ملف exe. لتجنب ذلك ، استخدم أداة سطر الأوامر regsvr32.exe.

RegSvr32.exe القيادة

يدوياً باستخدام regsvr32.exe (Windows.Start - Run) سيتم تسجيل وإلغاء تسجيل DLL للتسجيل الذاتي وعناصر تحكم ActiveX على نظام. يرشد Regsvr32.exe النظام لمحاولة تحميل المكون واستدعاء وظيفة DLLSelfRegister الخاصة به. إذا نجحت هذه المحاولة ، يعرض Regsvr32.exe مربع حوار يشير إلى النجاح.

يحتوي RegSvr32.exe على خيارات سطر الأوامر التالية:

Regsvr32 / u / s / n / i: cmdline dllname / s - Silent؛ عرض أي مربعات رسائل / u - إلغاء تسجيل الخادم / i - Call DllInstall لتمريره cmdline اختياري ؛ عند استخدامها مع / u المكالمات ، قم بإلغاء تثبيت / n - لا تتصل بـ DllRegisterServer ؛ يجب استخدام هذا الخيار مع / i

مكالمة REGSVR32.EXE داخل كود دلفي

للاتصال بأداة regsvr32 ضمن رمز Delphi ، استخدم وظيفة "RegisterOCX" لتنفيذ ملف وانتظر انتهاء التنفيذ.

هذه هي الطريقة التي يمكن أن يظهر بها الإجراء "RegisterOCX":

إجراء RegisterOCX. نوع TRegFunc = وظيفة : HResult ؛ STDCALL; فار ARegFunc: TRegFunc؛ aHandle: THandle ؛ ocxPath: خيط; ابدأ محاولة ocxPath: = ExtractFilePath (Application.ExeName) + 'Flash.ocx'؛ aHandle: = LoadLibrary (PChar (ocxPath)) ؛ إذا aHandle 0 ثم ابدأ ARegFunc: = GetProcAddress (aHandle، 'DllRegisterServer')؛ إذا تعيين (ARegFunc) ثم ابدأ ExecAndWait ('regsvr32'، '/ s' + ocxPath)؛ النهاية. FreeLibrary (aHandle)؛ النهاية؛ إلا ShowMessage (التنسيق ('غير قادر على التسجيل٪ s' ، ocxPath)) ؛ النهاية; النهاية;

لاحظ ال ocxPath نقاط متغير إلى "Flash.ocx" Macromedia OCX.

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

يستدعي السطر ExecAndWait في التعليمة البرمجية أعلاه أداة regsvr32 بتمرير مفتاح التبديل "/ s" مع المسار الكامل إلى OCX. الوظيفة هي ExecAndWait.

الاستخدامات shellapi، ... وظيفة ExecAndWait (CONST ExecuteFile ، ParamString: خيط): منطقية. فار SEInfo: TShellExecuteInfo؛ ExitCode: DWORD؛ ابدأ FillChar (SEInfo ، SizeOf (SEInfo) ، 0) ؛ SEInfo.cbSize: = SizeOf (TShellExecuteInfo) ؛ مع SEInfo هل تبدأ fMask: = SEE_MASK_NOCLOSEPROCESS؛ Wnd: = Application.Handle؛ lpFile: = PChar (ExecuteFile) ؛ lpParameters: = PChar (ParamString) ؛ nShow: = SW_HIDE؛ البريدالثاني؛ إذا ShellExecuteEx (SEInfo) ثم ابدأ كرر Application.ProcessMessages. GetExitCodeProcess (SEInfo.hProcess ، ExitCode) ؛ حتى (ExitCode STILL_ACTIVE) أو Application.Terminated ؛ النتيجة: = صحيح. النهاية آخر النتيجة: = خطأ. النهاية;

تستخدم الدالة ExecAndWait استدعاء API ShellExecuteEx لتنفيذ ملف على نظام. لمزيد من الأمثلة على تنفيذ أي ملف من دلفي ، تحقق من كيفية تنفيذ وتشغيل التطبيقات والملفات من كود دلفي.

Flash.ocx داخل دلفي إكس

إذا كانت هناك حاجة لتسجيل عنصر تحكم ActiveX على جهاز المستخدم ، فتأكد من أن المستخدم لديه OCX الذي يتطلبه البرنامج عن طريق وضع ActiveX بأكمله (أو DLL) داخل exe للتطبيق كمورد. عندما يتم تخزين OCX داخل إكس ، فمن السهل استخراج ، حفظ إلى القرص ، واستدعاء الإجراء RegisterOCX.


شاهد الفيديو: إضافة الصور والصوت في الفيجوال بيسك2010 .avi (قد 2022).