2008-09-17 19 views
29

Comment supprimer une clé USB à l'aide de l'API Win32? Je fais beaucoup de travail sur les systèmes embarqués et sur l'un d'entre eux, je dois copier mes programmes sur une clé USB et les insérer dans le matériel cible.Retirer en toute sécurité une clé USB en utilisant l'API Win32?

Depuis que je travaille principalement sur la console, je n'aime pas utiliser la souris et cliquez sur l'icône de la petite barre des tâches des centaines de fois par jour. Je voudrais écrire un petit programme pour faire exactement cela afin que je puisse le mettre dans mes makefiles, mais je n'ai trouvé aucun appel API qui fait la même chose.

Des idées?

Répondre

17

Vous pouvez utiliser la fonction CM_Request_Device_Eject(), ainsi que d'autres possibilités. Consultez les projets et articles suivants:

DevEject: Simple. http://www.withopf.com/tools/deveject/

Un article CodeProject utile: http://www.codeproject.com/KB/system/RemoveDriveByLetter.aspx

+0

Parfait .. Vous avez même lié à un utilitaire pour faire le travail. Merci beaucoup. –

+0

Référence MSDN @ http://msdn.microsoft.com/fr-fr/library/ms790831.aspx – stephbu

4

Il semble que Sync vous permet de spécifier -e pour éjecter des lecteurs amovibles. Bien qu'il ne s'agisse pas d'une API win32, vous pouvez probablement appeler sync -e [drive_letter] à partir de votre fichier makefile.

+0

Mais comment savoir quelle lettre de lecteur a été ajoutée pour le lecteur USB? Je veux également supprimer les lecteurs USB basés sur des volumes comme Ne pas autoriser le volume USB de plus de 5GG etc. –

2

Voici un technet article sur les supports de stockage amovibles. Recherchez DismountNtmsMedia.

0

Voici une solution dans Delphi, que j'ai modifiée et mise dans un service pour une très grande entreprise. Aller à: link text

Rechercher "scapi (Setup & Config Manager API)", et téléchargez-le. Il y aura un programme de démonstration appelé USBView qui vous mettra sur la bonne voie. Si vous avez Delphi, cela inclut également un composant TUSBDeviceTree que vous pouvez utiliser pour collecter des informations sur un périphérique USB lorsque.

Cordialement