هل تريد إزالة محرك أقراص USB بأمان باستخدام Win32 API؟

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

  •  01-07-2019
  •  | 
  •  

سؤال

كيف أقوم بإزالة محرك أقراص USB باستخدام Win32 API؟أقوم بالكثير من العمل على الأنظمة المضمنة، وعلى أحد هذه الأنظمة يجب أن أنسخ برامجي على وحدة تخزين USB وأدخلها في الجهاز المستهدف.

نظرًا لأنني أعمل غالبًا على وحدة التحكم، فلا أحب استخدام الماوس والنقر فوق رمز شريط المهام الصغير مائة مرة يوميًا.

أرغب في كتابة برنامج صغير للقيام بذلك بالضبط حتى أتمكن من وضعه في ملفات makefiles الخاصة بي، لكنني لم أجد أي استدعاء لواجهة برمجة التطبيقات (API) يفعل نفس الشيء.

أيه أفكار؟

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

المحلول

يمكنك استخدام الدالة CM_Request_Device_Eject() بالإضافة إلى بعض الاحتمالات الأخرى.راجع المشاريع والمقالات التالية:

إخراج التطوير:واضح ومباشر.http://www.withopf.com/tools/deveject/

مقالة CodeProject مفيدة:http://www.codeproject.com/KB/system/RemoveDriveByLetter.aspx

نصائح أخرى

يبدو الأمر كذلك مزامنة يتيح لك تحديد -e لإخراج محركات الأقراص القابلة للإزالة.على الرغم من أنها ليست واجهة برمجة تطبيقات Win32، فمن المحتمل أن تتمكن من الاتصال فقط sync -e [drive_letter] من ملف التعريف الخاص بك.

هنا أ مقالة تكنيت حول وسائط التخزين القابلة للإزالة.بحث DismountNtmsMedia.

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

ابحث عن "scapi (Setup & Config Manager API)" وقم بتنزيله.سيكون هناك برنامج تجريبي يسمى USBView سيأخذك في طريقك.إذا كان لديك دلفي، فهذا يتضمن أيضًا مكون TUSBDeviceTree الذي يمكنك استخدامه لجمع معلومات حول جهاز USB عندما.

يعتبر

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