كيفية اكتشاف استخدام c# إذا كان محرك الأقراص المحمول متصلاً بمنفذ USB؟

StackOverflow https://stackoverflow.com/questions/271907

سؤال

هل هناك طريقة لمعرفة متى يقوم أي شخص في شبكة LAN بتوصيل محرك أقراص محمول بمنفذ USB؟برمجياً (يفضل في C#) أو من خلال بعض الأدوات.أتخيل بشكل أساسي وجود تطبيق عميل على كل محطة طرفية ويراقب منافذ USB ويرسل المعلومات إلى الخادم.

أ.) هل يمكنني الحصول على تفاصيل الملف (الملفات) الجاري نسخها؟ب.) هل هناك طريقة للقيام بذلك دون تطبيق العميل؟

يحرر

لا أريد تعطيل منفذ USB بالكامل.يجب أن يكون على أساس الحاجة.في الأساس، أريد فقط من المستخدمين على الشبكة المحلية مشاركة البيانات بشكل مسؤول ومعرفة أن أي بيانات يتم نقلها تتم مراقبتها وتسجيلها ويمكن استجوابها لاحقًا.

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

المحلول

[بافتراض نظام التشغيل Windows، في ضوء ملاحظة C#.يرجى وضع علامة وفقًا لذلك]

نعم هذا ممكن.ومن الممكن الحصول على تفاصيل الملف.ومع ذلك، فإنه سوف يتطلب البرمجة.انتبه WM_DEVICECHANGE وأعد تعداد محركات الأقراص بعد ذلك.سوف تحصل على محركات أقراص USB، ولكن أيضًا بطاقات SD.أتوقع أن هذه مكافأة لك.

للحصول على مزيد من التفاصيل بمجرد معرفة وصول محرك الأقراص، استخدم System.IO.FileSystemWatcher

تحديثلقد وجدت حلاً أفضل - إذا قمت بالتسجيل للحصول على إشعارات واجهة وحدة التخزين، فستحصل على مسار مستوى الصوت لمحرك الأقراص الجديد.أولاً، قم بإنشاء DEV_BROADCAST_DEVICEINTERFACE مع dbcc_classguid=GUID_DEVINTERFACE_VOLUME.ثم قم بتمرير هذا إلى RegisterDeviceNotification().سوف تحصل مرة أخرى على WM_DEVICECHANGE ولكن يمكنك الآن إرسال lParam من الرسالة إلى DEV_BROADCAST_DEVICEINTERFACE*.

يمكنك تمرير dbcc_name تتلقى ل GetVolumeNameForVolumeMountPoint().يمكنك أيضًا تمرير كافة أحرف محركات الأقراص من GetLogicalDriveStrings() ل GetVolumeNameForVolumeMountPoint().سيكون لديك اسم مجلد واحد مطابق؛هذا هو محرك الأقراص الجديد.

نصائح أخرى

وكما تحقق من التسجيل حيث يتم تخزين كافة المعلومات حول أجهزة USB. HKEY_LOCAL_MACHINE \ SYSTEM \ نقرا \ التعداد \ USB

ويمكنك ربط إلى تغييرات من هذا المفتاح في التسجيل والعمل على ذلك.

وهذه الأداة المجانية هي مساعدة كبيرة عندما pooking حول: HTTP: //www.nirsoft. صافي / تيلس / usb_devices_view.html

ويمكنك اختيار الناقل التسلسلي العام القرص، واختيار لفتح مفتاح التسجيل لمحرك الأقراص وتمكين / تعطيل الجهاز والكثير.

في التسجيل يمكنك معرفة ما إذا كان يتم توصيل الجهاز، إذا كان من نوع massstorage والمعلومات إينتيريستينج أخرى. من السهل لتصفية REGKEYS لمجرد الحصول على يو اس بي-massstorage ثم ربط في وانتظر التغييرات (الاتصال / الانفصال).

ومع ويندوز إدارة الأجهزة يمكنك التسجيل لتلقي الأحداث التسجيل: http://msdn.microsoft.com/en-us /library/aa393035(VS.85).aspx

تحقق من System.Management في صافي

إذا في بيئة صغيرة وتريد منع أية أجهزة USB من أن تستخدم، ثم يمكنك تعطيل منافذ USB في إدارة الجهاز، تأكد من عدم تحديد أي من المستخدمين تصل كما الاداريين على الآلات، وأنه ينبغي منع جميع استخدام USB .

وإذا كنت بجنون العظمة حقا عن ذلك، مجرد فتح آلات والمكونات خارج الموانئ.

وإلقاء نظرة على هذه المادة. يفسر الرسائل وكيفية العمل معها. الكشف عن محرك أقراص USB إزالة

ولقد استعملت أبدا، ولكن الناس في جيم # رمز (شارب ديفيلوب) لديها usblib. ربما يمكن أن تساعدك على الخروج.

http://www.icsharpcode.net/OpenSource/SharpUSBLib/default.aspx

هل تحاول منع استخدام محركات أقراص الإبهام USB؟ إذا كان الأمر كذلك هناك نهج المجموعة التي تسمح لك لتقييد الوصول.

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