View Full Version : شناسایی فلش
صابر طهماسبی
دوشنبه 08 شهریور 1389, 11:20 صبح
سلام
چطور میشه داخل برنامه تشخیص بدیم که یک فلش به سیستم وصل شده
برای مثال یه برنامه داریم که وقتی اجرا میشه نیاز داره که یک فلش که اطلاعات خاصی به صورت کد شده داخلش نهگداری میشه به سیستم وصل کنیم وگرنه برنامه خطا میده
چطور این کار رو انجام بدم
ممنون
Felony
دوشنبه 08 شهریور 1389, 11:40 صبح
قبلا یه کامپوننت نوشته بودم که تشخیص میداد یه دستگاه USB به سیستم متصل شده یا از سیستم جدا شده ولی نام درایوش رو تشخیص نمیداد ؛ یعنی باید خودتون با یک ترفند نام درایو رو بدست بیارید .
صابر طهماسبی
دوشنبه 08 شهریور 1389, 11:47 صبح
از لطفتون ممنونم
میشه کمی راهنمایی کنید چه ترفندی برای پیدا کردن نام درایو مناسبه؟
آیا باید درایوها را یک به یک چک کنم؟
یه نکته دیگه اگه فرض کنیم همزمان چند فلش به سیستم متصل باشند تشخیص فلش مورد نظر به نظر میاد سخت باشه
Felony
چهارشنبه 10 شهریور 1389, 09:11 صبح
موقع اجرا برنامه با یک حلقه تمام درایوها رو چک کنید و اونهایی که نوعشون Removable هست رو تو یک جا ( مثلا StringList ) ذخیره کنید ، حالا تو کامپوننتی که براتون ضمیمه کردم یک رویداد برای اضافه شدن فلش و یک رویداد برای حذف فلش دراید ، درست ؟ ؛ حالا به راحتی میتونید تو رویداد اضافه شدن فلش لیست فلش های متصل به سیستم رو دریافت کنید و با لیست قبلی که هنگام احرای برنامه تهیه کرده بودید مقایسه کنید ، درایوهایی که در لیست اولیه شما وجود ندارن درایوها USB جدید هستند ، برای حذف هم به همین شکل ؛ البته نباید کدتون رو به طور مستقیم داخل این 2 رویداد کامپوننت بنویسید چون تو این کامپوننت به وسیله بررسی پیغام WM_DeviceChnage اتصال یا حذف دستگاه USB رو بررسی میکنه و این پیغام با اتصال دستگاه USB به سیستم برای سیستم عامل ارسال میشه ولی هنوز درایو شناخته نشده ، پس اگر این کار رو تو همون رویداد انجام بدید برنامه تشخیص میده که درایو جدیدی اضافه یا حذف شده ولی چون هنوز سیستم درایو رو نشناخته نمیتونید تو این رویداد ها درایو جدید رو بشناسید ( این رویداد ها فقط برای اطلاع رسانی هستند و تا زمانی که اجرای کد داخل این رویدادها تمام نشده فلش به طور کامل شناسایی نمیشه ) ، برای رفع این مشکل میتونید تو این رویدادها یک تایمر رو فعال کنید و داخل تایمر بررسی هایی که گفتم رو انجام بدید .
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.