بداية كان هناك موضوع سابق لى فى هذا الخصوص فى منتدى الدروس و الشروحات
إكتشفت به أخطاء لذلك فقد أغلقته
اليوم طريقة جديدة جذريا و ثورية عن طريق مخاطبة wmi
بعد تحويل سكريبت vbs إلى لغة الأوتوبلاى (أعدكم بمحول لو كنتم تريدون ذلك)
الكود الرئيسى للكشف
- الكود:
-
target = luacom.GetObject ( "winmgmts:\\\\.\\root\\cimv2");
if (target ~= nil) then
TargetEnum = target:ExecQuery("Select * from Win32_CDROMDrive");
if (TargetEnum ~= nil) then
enum = luacom.GetEnumerator(TargetEnum)
item = enum:Next ()
if not item then
str_product = "no cd detected"
else
while item do
str_product = tostring(item:Drive())
item = enum:Next()
end
end
end
end
و معذرة على غرابة الأكواد فهى محولة من ملف vbs
شغل البرنامج و لاحظ
صدر المشروع بصيغة أيزو
و شغله
ب ultraiso
لاحظ النتائج
إغلق الجهاز و إفصل السيديروم (إن لم يكن لاب توب)
شغل الجهاز مرة أخرى
شغل البرنامج و لاحظ النتائج
الآن مع صور تشغيل برنامج الكشف فى عدة حالات
أولا
يوجد سيدي حقيقى على الجهاز و لكن التشغيل تم من الهارد
ثانيا
يوجد سيدي حقيقى و لكن التشغيل تم ببرنامج محاكاة
ثالثا
لا يوجد سيدي حقيقى و التشغيل تم من الهارد
رابعا
لا يوجد سيدي حقيقى و التشغيل تم من برنامج محاكاة
الملف المفتوح فى المرفقات
ملحوظة هامة :-
لابد من تفعيل الإضافة lua com لكى تعمل أكواد الملف المفتوح
منتظر تعليقاتكم خصوصا من أصحاب ويندوز 7 حيث أن wmi قد تختلف من نظام لآخر
أحوكم
خالد على22
http://www.4shared.com/file/XAZRzU4f/detect_cd_by_script.html