السلام عليكم
كنت فيما سبق سألت عن ذلك فأجابني MjIrIm بارك الله فيه لكن لم يكن ذلك ما كنت أبحث عنه...
http://www.delphi4arab.net/forum/showthr...p?tid=1171
الذي أبحث عنه هو استخراج الرقم الفيزيائي (الثابت) وليس المنطقي (المتغير) وقد قدم لي أحدهم الطريقة لذلك عن طريق Script VBS والكود هو التالي:
كود :
On Error Resume Next
MyComputer = "."
Set obj = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & MyComputer & "\root\cimv2")
Set columns = obj.ExecQuery("Select * from Win32_DiskDrive where caption like '%USB%'")
For Each item in columns
Wscript.Echo "Caption: " & Item.Caption
Wscript.Echo "Signature: " & Item.signature
Next
طريقة الاستخدام: أكتب الكود في ملف TXT واحفظه بامتداد VBS وقم بتشغيله (لا تشخى شيئا لا علاقة لهذا بالفايروسات حتى وإن قال ذلك بعض المضادات الحساسة

)
السؤال:
كيف السبيل الى استغلال هذا Sript في الدلفي واستخراج القيمة Item.signature (السطر الأخير للسكريبت) ؟
شكرا كثيرا.
بالفعل حسب ما قرأت هناك مكونات بواسطتها تستطيع قراءة السكريبت و تنفيده من داخل دلفي...أترك لك الموضوع أخي الكريم لتتعمق فيه أكتر
ولي توجيه من الأفضل تعلم الجافا سكريبت مثلا أو أحد السكريبتات القوية أما VBScrypt فهو محدود الامكانيات
بارك الله فيك أخي me&delphi
وآسف أني تعبتك معي...
في الحقيقة هناك مكونات عديدة للقيام بذلك، منها مكون من Microsoft اسمه VBScript Conctrol
أفضل استعمال وحدة (Unit) أو مكتبة (DLL) مثل:
Delphi Wrapper for the Microsoft VBScript 5.5 RegExp Library
لم أجربها بعد ...
والذي أحاول أن أصل إليه هو استغلال القيمة Item.signature وتخزينها في متغير String لاستعمالها لاحقا.
شكرا كثيرا me&delphi
السلام عليكم ,,
هل يمكنك برمجة dll بالـ VBScrypt ؟؟ .
في البداية السلام عليكم
أخي العزيز kachwahed
بالمرفقات ان شاء الله تجد وحدتين مفيدتين جدا
بهما العديد من الوضائف
باذن الله الافادة و طلبك حاصل
اذا اردت الاجابة عن تساؤلك السابق في الموضوع الذي أشرت اليه
يمكنك استعمال الدالة SetMediaIdentifier
الموجودة في الوحدة vwin32.pas
يمكن قرائة هذه الوحدة جيدا
لان بها المزيد من الاستعمالات
تمنياتي لك بالتوفيق
و السلام.
tf6mehboul كتب :هل يمكنك برمجة dll بالـ vbscrypt ؟؟ .
لا أضن دلك أخي الكريم
إقتباس :بالمرفقات ان شاء الله تجد وحدتين مفيدتين جدا
هل بهده الوحدة تستطيع قراءة السكريبت من داخل دلفي و تنفيده
السلام عليكم
بارك الله فيك أخي الكريم MjIrIm وجزاك الخير كله
إقتباس :هل بهده الوحدة تستطيع قراءة السكريبت من داخل دلفي و تنفيده
سأجرب وأطرح مثالا ليستفيد منه الجميع إن شاء الله
بارك الله فيكم جميعا.
السلام عليكم،
أخي MjIrIm لقد اطلعت على الوحدة VWIN32.PAS والدالة GetMediaIdentifier (وليست SetMediaIdentifier) لكنها لا تعيد الرقم الفيزيائي للقرص، وهذا مثال مع الكود سورس والملف النتفيذي:
https://www.planet-source-code.com/vb/sc...FR13626032
شكرا كثيرا أخي MjIrIm سأبحث أكثر وأوافيك بالجديد.
استدعاء VBS ليس طريقة جيدة فقد تثير بعض مضادات الفيروسات وبرامج الحماية
ايضا ما يقوم به Script يمكن القيام به بدلفي بطريقة اخرى
وحسب ما فهمت الهدف ليس تنفيذ VBS بقدر ما هو الحصول على رقم تسلسلي للFlash Disk
استخدم مكونات MiTeC System Informationموقعها mitec.cz
والسلام عليكم
بار ك الله فيك أستاذ، جزاك الله كل خير
... فعلا ليس الهدف تفيذ VBS بقدر ما هو الحصول على الرقم التسلسلي، لكني جربت مكونات MiTeC System Information Component Suite ومكونات أخرى عديدة من هذا النوع وكلها لم لم تف بالغرض، سألت أحد الخبراء فدلني على هذا السكريبت، وسألت Marco Cantu فأجابني:
إقتباس :> 1- Is there any way to get the the Physic Serial Number for USB Disk in
> Delphi ???
I guess there is probably a Windows APi or registry lookup for that,
but I have no information.
> 2- Who can i use above VBScript and retrive the value of "Item.signature" to
> store it in varibale String ?
That code is hard to read for me... I think it uses an external component.
--
----
Marco Cantù, author Delphi 2009 Handbook
سأبحث عن دالة API هذه التي تحدث عنها، إبحثوا معي لنستفيد جميعا
