13-04-2011, 02:37 PM
13-04-2011, 05:12 PM
وعليكم السلام ورحمة الله
استخدم WMI، هنا مثال مع إدراج المكتبة WbemScripting_TLB أو المرفق
بالتوفيق.
استخدم WMI، هنا مثال مع إدراج المكتبة WbemScripting_TLB أو المرفق
كود :
http://www.ciuly.com/delphi/wmi/cpu-system-temperature/14-04-2011, 12:17 AM
جزاك الله خيرا على الرد السريع و لكن بعد تحميلي للمرفق الله اعلم فيه خطأ لاني بعد التنفيد يأتيني خطأ هنا
[COLOR="Red"]WbemScripting_TLB, activex;
[/COLOR]
فلم اعرف اين يكمن المشكل
[COLOR="Red"]WbemScripting_TLB, activex;
[/COLOR]
فلم اعرف اين يكمن المشكل
14-04-2011, 06:12 AM
المثال يستخدم مكتبة من Microsoft WMI Scripting
قم بتثبيتها أولا:
قم بتثبيتها أولا:
كود :
http://theroadtodelphi.wordpress.com/2010/11/28/be-careful-when-you-import-the-microsoft-wmiscripting-library/14-04-2011, 10:08 AM
وجهني اخي من فضلك بعد زيارة الرابط الله اعلم وجدت الرابطين الذين سيفداني بحول الله
تكرم من هنا من فضلك :
فلم أعرف ماذا أحمل
و بوركت اخي على تقديم العون
تكرم من هنا من فضلك :
كود :
http://msdn.microsoft.com/en-us/library/aa393762(VS.85).aspx
http://msdn.microsoft.com/en-us/library/aa393259(v=VS.85).aspxفلم أعرف ماذا أحمل
و بوركت اخي على تقديم العون
14-04-2011, 03:12 PM
ولا واحدة منهما...
الذي ينبغي أن تقوم بتثبيت المكتبة كما تفعل مع ActiveX/OCX
هنا طريقة أخرى لاستخدام WMI دون تثبيت المكتبة بأكملها:
المصدر:
بالتوفيق.
الذي ينبغي أن تقوم بتثبيت المكتبة كما تفعل مع ActiveX/OCX
هنا طريقة أخرى لاستخدام WMI دون تثبيت المكتبة بأكملها:
PHP كود :
{$APPTYPE CONSOLE}
uses
SysUtils,
ActiveX,
ComObj,
Variants;
function GetWMIstring(wmiHost, root, wmiClass, wmiProperty: string): string;
var
objWMIService : OLEVariant;
colItems : OLEVariant;
colItem : OLEVariant;
oEnum : IEnumvariant;
iValue : LongWord;
function GetWMIObject(const objectName: String): IDispatch;
var
chEaten: Integer;
BindCtx: IBindCtx;//for access to a bind context
Moniker: IMoniker;//Enables you to use a moniker object
begin
OleCheck(CreateBindCtx(0, bindCtx));
OleCheck(MkParseDisplayName(BindCtx, StringToOleStr(objectName), chEaten, Moniker));//Converts a string into a moniker that identifies the object named by the string
OleCheck(Moniker.BindToObject(BindCtx, nil, IDispatch, Result));//Binds to the specified object
end;
begin
objWMIService := GetWMIObject(Format('winmgmts:\\%s\%s',[wmiHost,root]));
colItems := objWMIService.ExecQuery(Format('SELECT * FROM %s',[wmiClass]),'WQL',0);
oEnum := IUnknown(colItems._NewEnum) as IEnumVariant;
while oEnum.Next(1, colItem, iValue) = 0 do
begin
Result:=colItem.Properties_.Item(wmiProperty, 0); //you can improve this code ;) , storing the results in an TString.
end;
end;
begin
try
CoInitialize(nil);
try
WriteLn(GetWMIstring('.', 'root\CIMV2', 'Win32_OperatingSystem','Caption'));
Readln;
finally
CoUninitialize;
end;
except
on E:Exception do
Begin
Writeln(E.Classname, ': ', E.Message);
Readln;
End;
end;
end.
كود :
http://stackoverflow.com/questions/2761328/how-do-i-use-wmi-with-delphi-without-drastically-increasing-the-applications-fil14-04-2011, 07:31 PM
أستاذنا الفاضل و الله وجدت صعوبة فهلا سهلتها عليا سهل الله عليك في دنيا .
هل يمكنك ان تبرمجها لي او تقدم لي مشروع و سأدرس السورس
و الله لا يحرمك الاجر
هل يمكنك ان تبرمجها لي او تقدم لي مشروع و سأدرس السورس
و الله لا يحرمك الاجر
14-04-2011, 08:23 PM
إقتباس :هل يمكنك ان تبرمجها لي او تقدم لي مشروع و سأدرس السورسصدقني، لا أعرف

كما قال صاحب المثال الأول، أن الفكرة نجحت معه في لوحة GigaByte ولا يدري عن النتيجة مع بقية الموديلات
وقد يتوقف الأمر على دعم Driver لتوفير هذه المعلومة، وقد يتطلب أيضا إعادة تكييف مكتبة WMI أخرى
وهو ما يتطلب معرفة جيدة بـ WMI...
جرب باستخدام Magenta WMI مجانية+سورس
كود :
http://www.magsys.co.uk/delphi/magwmi.asp14-04-2011, 08:34 PM
بارك الله فيك أستاذنا على ما قدمته لي و جزاك الله خيرا .. و اعتقد ان الامر اضخم مني بكثير و اكثر مما كنت أتوقع
و البرنامجين الاول و الثاني برامج ضخمة نسأل الله و تعالى ان يرزقنا من علمه حتى نبرمج مثلها و اكثر
للأسف سأتخلى عن المشروع و اتوجه الى امور اخرى و أسهل و اعتذر لك على الاطالة و اشكرك على صبرك معي
اتمنى ان يغلق الموضوع و شكرا
و البرنامجين الاول و الثاني برامج ضخمة نسأل الله و تعالى ان يرزقنا من علمه حتى نبرمج مثلها و اكثر
للأسف سأتخلى عن المشروع و اتوجه الى امور اخرى و أسهل و اعتذر لك على الاطالة و اشكرك على صبرك معي
اتمنى ان يغلق الموضوع و شكرا