سلام
لطفا اگر کسی درمورد اینکه چگونه می توان از ویندوز این رخداد که درایوی( سی دی، یو اس بی، مموری استیک یا ...) اضافه یا کم شده دریافت کرد، اطلاعاتی دارد مطرح کند.
ممنون
سلام
لطفا اگر کسی درمورد اینکه چگونه می توان از ویندوز این رخداد که درایوی( سی دی، یو اس بی، مموری استیک یا ...) اضافه یا کم شده دریافت کرد، اطلاعاتی دارد مطرح کند.
ممنون
در این گونه موارد پیام WM_DEVICECHANGE ارسال می شود که می توانید از آن استفاده کنید ،
مثلا در این پیام دریافت DBT_DEVICEARRIVAL اضافه شدن رسانه یا وسیله ای را نشان می دهد و DBT_DEVICEREMOVECOMPLETE حذف شدن یا خارج شدن آن را نشان می دهد.
موفق باشید
سلام
ممنون از جوابتون، ولی همانطور که گفتم من می خواهم از اضافه شدن یک "درایو" با اطلاع بشم، حالا این درایو به هر صورت که به ویندوز اضافه شده مهم نیست( من در مورد CD یا USB این کار را کرده ام ولی می خواهم این پیام وقتی به برنامه من بیاید که یک درایو یعنی یک وسیله ذخیره سازی داده ها( Storage ) مثلا یک دوربین حافظه دار یا هر نوع دیگر، به سیستم اضافه شود، وقتی ویندوز با چنین حالتی روبرو می شود یک پنجره می آورد که فکر کنم پنجره Auto read باشد) ،
ممنون
سلام
من 2 روز صبر کردم، ولی مثل اینکه کسی جواب این سوال رو نمی دونه!!!
من توی جستجو هام به این مطلب رسیدم که برای اینکه رخدادی به برنامه من ارسال شود در مود یوزر باید تابع RegisterDeviceNotification یا در مود درایور باید تابع IoRegisterPlugPlayNotification رو فراخوانی کنم، و این دو تابع هیچ فرقی در این کاربرد باهم ندارند، ولی برای بکار بردن تابع RegisterDeviceNotification نیاز به کلاسهای GUID برای تمام این درایوها است که من نمی تونم اونا رو پیدا کنم، کسی میتونه به من در این زمینه کمک کنه؟
ممنون
در صفحه زیر از سمت چپ می توانید class guid برخی دیگر از ابزار مانند disk و .. را نیز بیابید:
http://msdn2.microsoft.com/en-us/library/bb663102.aspx
توابع زیر را نیز برای شمارش و دریافت guid ها بررسی کنید:
SetupDiEnumDeviceInfo
SetupDiGetDeviceInterfaceDetail
SetupDiEnumDeviceInterfaces
دو صفحه زیر را برای نمونه ها کمک می کند:
http://groups.google.com/group/microsoft.public.de...
http://groups.google.com/group/microso...
سلام
با تشکر از جواب شما، از این روش( SetupDiXXXX ) هم استفاده کردم ولی موثر نبود،
از DirectoryNotifyChange هم استفاده کردم ولی متاسفانه آن هم موثر نبود،
در این حالت من کارت حافظه را از داخل حافظه خوان خارج می کنم و سپس دوباره آن را در داخل حافظه خوان جاسازی می کنم، ویندوز متوجه می شود( با نمایش پنجره "What do you want Windows to do" ) ولی در هیچ یک از این عملیات برنامه من متوجه نمی شود.
متشکرم