![]() |
|
كيف يمكن التحقق من مكتبة 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 كتب : وعليكم السلام كود : 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 كود : 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; |