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

كيف أحدد مسار القرص المضغوط؟؟؟

مغلق
بدأه إبراهيم دويكات في 2 مايو 2006 · 7 رد · 651 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي برنامج معين، الملفات الاساسية والضرورية لتشغيله تم تحزيمها بواسطة Setup Project ويمكن للمستخدم نسخها إلى القرص الصلب عندما يعمل إعداد للبرنامج، لكن هناك ملفات ثانوية ذات حجم كبير ومستخدم البرنامج لا يستخدمها بكثرة، لذلك ستبقى موجودة على الاسطوانة ولا حاجة لنسخها الى القرص الصلب..

السؤال هو: كيف أستطيع في السي شارب أن أعرف عنوان (حرف) محرك القرص المضغوط؟؟

تم تعديل هذه المشاركة بواسطة إبراهيم دويكات في 2 مايو 2006 في 00:36

My_Sign.jpg
#2

يوجد تابع اسمه:

string[] str = Environment.GetLogicalDrives();
for (int i = 0; i < str.Length; i++)
{
      // خزن أسماء السواقات في عنصر ما
}

يعيد أسماء جميع السواقات المتوفرة.

وباستخدام تابع الـ API التالي تستطيع معرفة نوع السواقة:

const int DRIVE_REMOVABLE = 2;
const int DRIVE_FIXED = 3;
const int DRIVE_REMOTE = 4;
const int DRIVE_CDROM = 5;
private System.Windows.Forms.Button button1;
const int DRIVE_RAMDISK = 6;

[DllImport("kernel32")]
public static extern int GetDriveType (string nDrive);

int t = GetDriveType(cbDrivers.Text);
if (t == DRIVE_CDROM)
{
    // Do some thing
}
#3

ما هذه؟؟؟؟

[DllImport("kernel32")]

My_Sign.jpg
#4
إبراهيم دويكات كتب:
ما هذه؟؟؟؟

[DllImport("kernel32")]

هذه طريقة استدعاء توابع الموجودة في مكتبة DLL خارجية, حيث يتم ذكر اسم المكتبة ومن ثم التصريح عن التابع الذي سنستدعيه

#5

أعطاني عليها error

هل يلزم أن أعمل using لشيء ما؟؟؟

My_Sign.jpg
#6

نعم.

using System.Runtime.InteropServices

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#7

شكرا على اجابتكم اخ معتز واسماعيل ... ولكن وانا انفد في برنامج للتجربه لم تنجح معي هذه الفكرة والمشكلة كانت في DllImport

وها هي صيغة الخطا

J:\Visual Studio Projects\ReadCDRom\Form1.cs(25): The type or namespace name 'DLLImport' could not be found (are you missing a using directive or an assembly reference?)

فالرجاء توضيح هذه الفكرة بمتال عملى وجزاكم الله كل خير

#8

شكرا جزيلا لك أخ إسماعيل عنجريني وأخي معتز شمس

وهذا المثال (بناء على كود الأخ إسماعيل) يقوم بتعبئة كل Drives في ComboBox

وأيضا يعطيك من هو CD-ROM

CDROM.rar

My_Sign.jpg

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

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