كيفية اكتشاف استخدام c# إذا كان محرك الأقراص المحمول متصلاً بمنفذ USB؟
-
07-07-2019 - |
سؤال
هل هناك طريقة لمعرفة متى يقوم أي شخص في شبكة 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؟ إذا كان الأمر كذلك هناك نهج المجموعة التي تسمح لك لتقييد الوصول.