سؤال

مرحبًا ، أريد أن أفعل شيئًا عندما تكون عصا الذاكرة متصلة بالكمبيوتر. الآن أستخدم مؤقتًا وأتحقق من ذلك في كل علامة ما إذا كان يتم توصيل أي عصا ذاكرة (استخدم DriveInfo أو مع الاستعلام عن WMI) هل هناك أي نموذج مدفوع بالحدث متاح للقيام به؟ على سبيل المثال ، أستخدم حدثًا في برنامجي يرفع كلما تم توصيل عصا الذاكرة بالكمبيوتر؟

هل كانت مفيدة؟

المحلول

تريد التعامل مع wm_devicechange رسالة في wndproc الخاص بك. عندما تتعامل مع ذلك ، يمكنك أيضًا الاتصال RegisterDeviceNotification للحصول على إشعار بأن العصا يتم طردها بشكل نظيف.

عندما تتلقى أ WM_DEVICECHANGE, ، تريد التحقق من WPARAM - DBT_DEVICEARRIVAL (0x800) هو ما تبحث عنه.

في C ++ ، يجب ألا تواجه أي مشكلة في WNDProc. في C#، ستحتاج إلى تجاوز النموذج الرئيسي الخاص بك wndproc الطريقة والتحقق m.Msg == 0x219 و m.WParam == 0x800. لاحظ أنه لن يكون كل هذه عصا ذاكرة - ولكن يمكنك استخدام هذا لإعلامك بالتحقق من إدراج محرك الأقراص بدلاً من مؤقت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top