delphi4arab منتديات دلفي للعرب
كيف يمكن التحقق من مكتبة dll ان كانت مفعلة او لا - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : كيف يمكن التحقق من مكتبة dll ان كانت مفعلة او لا (/showthread.php?tid=11872)



كيف يمكن التحقق من مكتبة dll ان كانت مفعلة او لا - محمودد - 30-03-2022

السلام عليكم 
يوجد لدي برنامج يستخدم مكتبة dll 
 نفرض اسمها test.dll ماهوا الكود المناسب للتحقق ان كانت هذه المكتبة تعمل او لا
حاولت مع FindWindow لم ينجح الامر



RE: كيف يمكن التحقق من مكتبة dll ان كانت مفعلة او لا - Agmcz - 30-03-2022

وعليكم السلام
عن طريقة الدالة LoadLibrary


RE: كيف يمكن التحقق من مكتبة dll ان كانت مفعلة او لا - محمودد - 01-04-2022

(30-03-2022, 07:36 PM)Agmcz كتب : وعليكم السلام
عن طريقة الدالة LoadLibrary

   
كود :
begin   hmod := LoadLibrary('kernel32.dll');   if (hmod <> 0) then begin     GetDType := GetProcAddress(hmod, 'GetDriveTypeA');     if (@GetDType <> nil) then begin       DriveType := GetDType('c:\');       ShowMessage('Drive Type is : ' + IntToStr(DriveType));     end     else       ShowMessage('GetProcAddress failed');     FreeLibrary(hmod);   end   else     ShowMessage('LoadLibrary Failed!'); end;



RE: كيف يمكن التحقق من مكتبة dll ان كانت مفعلة او لا - Agmcz - 03-04-2022

عذرا الدالة LoadLibrary تستخدم لتحميل المكتبة إلى الذاكرة.
إستخدم GetModuleHandle
كود :
function CheckDLLIsLoaded(DllName: PChar): Boolean; begin   Result := GetModuleHandle(DllName) <> 0; end; procedure TForm1.Button1Click(Sender: TObject); begin   if CheckDLLIsLoaded('TestDLL.dll') then   ShowMessage('This library is loaded'); end;



RE: كيف يمكن التحقق من مكتبة dll ان كانت مفعلة او لا - Ndagor - 03-04-2022

Shy
كود :
function IsLibraryInstalled(const LibFileName: string): Boolean;   {Checks if a library with name LibFileName is installed.} var   DLLHandle: Windows.THandle; // handle to DLL begin   // Try to load DLL   try     DLLHandle := SysUtils.SafeLoadLibrary(LibFileName);   except     DLLHandle := 0;   end;   // Check if DLL has been loaded   Result := DLLHandle <> 0;   if Result then     Windows.FreeLibrary(DLLHandle); end;