كيف معرفة حرف واسم القرص القابل للازالة الموجود على الحاسب؟
#1
كيف معرفة حرف واسم القرص القابل للازالة الموجود على الحاسب؟
الرد
#2
بعد البحث وجدت لك كود يقوم بسرد جميع الاقراص الموجودة لعله يفيدك بشيء وما زال البحث جاريا
كود :
procedure GetDriveLetters(AList: TStrings); var vDrivesSize: Cardinal; vDrives : array[0..128] of Char; vDrive : PChar; begin AList.BeginUpdate; try // clear the list from possible leftover from prior operations AList.Clear; vDrivesSize := GetLogicalDriveStrings(SizeOf(vDrives), vDrives); if vDrivesSize=0 then Exit; // no drive found, no further processing needed vDrive := vDrives; while vDrive^ <> #0 do begin AList.Add(StrPas(vDrive)); Inc(vDrive, SizeOf(vDrive)); end; finally AList.EndUpdate; end; end;
أضف ListBox إلى الفورم ومن ثم نقر مزدوج على الفورم نفسه واكتب هذا الأمر
كود :
GetDriveLetters(ListBox1.Items)
وجدت لك الكود دون الحصول على اسم الـ Usb
لا تنسى وضع Memo + Button على الفورم
كود :
Function RemovableDrive(Drive: char): Boolean; begin Result := (Windows.GetDriveType(PChar(Drive + ':\')) = Windows.Drive_Removable); end; procedure TForm2.Button1Click(Sender: TObject); var Drive: Char; begin for Drive := 'A' to 'Z' do begin if BoolToStr(RemovableDrive(Drive), TRUE) <> 'False' then Memo1.Lines.Add('Drive: ' + Drive); end; end;
صورة
كود :
http://im15.gulfup.com/MvgF1.jpg
بالتوفيق أخي الكريم Smile
الرد
#3
شكرا جزيلا أخي الحويطي على التفاعل.
كخطوة أولى الأمر جيد.
بدأنا بالحصول على جميع الأقراص ثم الأقراص القابلة للإزالة.........ممتاز
المشكل النتيجة تظهر flash disk and floppy disk
لا أعتقد أنه توجد طريقة للتميز بين القرص المرن و الفلاش ديسك....
إظهار اسم أو وصف الفلاش ديسك هو خطوة أتمنى أن نتمكن من الحصول عليها فأحيانا تجد أكثر من فلاش ديسك في الحاسوب مما يجعلك تنتقل إلى my computer لمعرفة ما هو القرص الذي ترغب في التعامل معه
عموما أجدد لك شكري
الرد
#4
السلام عليكم
استعمل المكون DriveComboBox المرفق معا دلفي
او ابحث عن مكونات شبيهة
سبحان الله وبحمده سبحان الله العظيم
الرد
#5
أهلا أخي الكريم ....

ممكن استخدام هذا الكود للحصول على نوع قرص معين ...

كود :
procedure TForm1.Button1Click(Sender: TObject); var typ: Integer; s: string; begin s := '[color=Red]C:\[/color]'; typ := GetDriveType(PChar(s)); if Typ <> 0 then case typ of DRIVE_REMOVABLE: begin ShowMessage('Drive Removable / Diskette'); end; DRIVE_FIXED: begin ShowMessage('Drive fixed'); end; DRIVE_CDROM: begin ShowMessage('CD ROM Drive'); end; DRIVE_RAMDISK: begin ShowMessage('RAM Drive'); end; DRIVE_REMOTE: begin ShowMessage('Remote Drive'); end; end; end;


بالتوفيق أخي الكريم Smile
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم