الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعده ...اريد كود لمعرفة جميع الدريفات الموجوده ليدك

مغلق
بدأه RbcandWbc في 23 سبتمبر 2007 · 4 رد · 620 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

ارجو مكنم ألا تبخلوا علي في هذا الطلب حيث إني صادفت مشكلة في كيفية معرفة الدريفات الموجوده على جهازي

ووجد هذا الكود بالاعتماد على API لكنب لم افهمه

الكود:

Private Declare Function GetLogicalDrives Lib "KERNEL32" () As Long

Private Sub Command1_Click()

Dim drv As Long

Dim cnt As Integer

drv = GetLogicalDrives

For cnt = 0 To 25

If (drv And 2 ^ cnt) <> 0 Then

Print Chr(65 + cnt)

End If

Next cnt

End Sub

ارجو منكم شرحه لي ةا احضار كود أخر وشكرا لكم جميعا و لإداره هذا المنتدى العظيم

و الرجاء أحد منكم ما يتفلسف و يحكي سهل مو سهل وإلا API الخ الخ الخ نحن نريد الفائده وشكرا لكم

شكوت الى وكيع سوء حفظي فأشار على بترك المعاصي واخبرني ان علم الله نور و نور الله لا يأتي لعاصي

#2

ربما التوضيح التالي كاف .. وربما يزيد الأخ dj لإنه أكثر خبرة ..

عند تعاملك مع الدريفات علي الويندوز بدالة API علي النحو الذي ذكرته .. أو وضع تصريح Policy .. فلن تخاطبه باسمه C أو D وهكذا ..

ولكن ستخاطبه برقم محجوز لكلا من الـ 26 دريف .. A-Z

كل دريف له رقم فريد .. وبحيث إن أي رقمين أو أكثر إذا جمعتهم لا يعطوا رقم لدريف أخر ..

هذه الأرقام موضحة كالتالي ..

A: 1

B: 2

C: 4

D: 8

E: 16

F: 32

G: 64

H: 128

I: 256

J: 512

K: 1024

L: 2048

M: 4096

N: 8192

إلخ ...

فمثلا إذا قلت لك الرقم 1 يمثل أي دريف .. فستقول لي دريف A

وإذا قلت لك الرقم 4 يمثل أي دريف .. ستقول لي C

وإذا قلت لك الرقم 5 يمثل أي دريف .. فستقول لي أنه مجموع 1+4 أي أنه يمثل الدريفان A,C

والدالة GetLogicalDrives تعود بقيمة Long تمثل مجموع الدريفات التي وجدها ..

فإذا عادت إليك مثلا بالقيمة 29 فهذا يعني [1+4+8+16] أي أن الأقراص هي A,C,D,E

يمكنك معرفة الأقراص الموجودة بالطريقة العادية التقليدية .. وهي معرفة الرقم الذي يمثله مجموع الدريفات .. واستنتاجه من خلال الكود..

أو الاستفادة من الخاصية التي من خلالها وضعت هذه الأرقام بهذا الشكل ..

يلزمك معرفة بالنظام الثنائي والمعامل المنطقي AND

http://www.c4arab.com/showlesson.php?lesid=731

/index.php?showtopic=135717

مع ملاحظة أن الحرف A في جدول الأسكي يقابله الرقم 65 .. الحرف B يقابله 66 .. وهكذا إلي 24 حرف .

تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 23 سبتمبر 2007 في 16:30

#3

الف شكر لك للتوضيح يا اخ pharaonic_Guy و الله ماقصرت يسلم ايديك اخي لولاك ما رفت ايش بدي اسوي

بس سؤال صغير ليش احنا استخدمنا for loop وحددناها ب 25

وابسؤال التاني ليش جمعناها ب 65 و الف شكر لك .................

شكوت الى وكيع سوء حفظي فأشار على بترك المعاصي واخبرني ان علم الله نور و نور الله لا يأتي لعاصي

#4
اقتباس
ليش احنا استخدمنا for loop وحددناها ب 25

كي يمر على كامل الحروف الانكليزية الممثلة للسواقات.

اقتباس
ليش جمعناها ب 65

لان chr(65) تمثل "A" وبالتالي cnt تجمع معها كي يعطيك رمز السواقة التي تم ايجادها.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#5

شكرا لتزضيحك يا اخي Jumkie ألف شكر لك مشكوووووووووووووووووووووووووووووووووووور

شكوت الى وكيع سوء حفظي فأشار على بترك المعاصي واخبرني ان علم الله نور و نور الله لا يأتي لعاصي

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…