2008-11-11 4 views
4

Je dois supprimer la lecture automatique pour les périphériques de stockage de masse. Ceci doit être réalisé de manière programmée par un service/deamon fonctionnant en arrière-plan.supprimer la lecture automatique

Je sais que cela peut être fait par une application qui ouvre une fenêtre et gère le message "queryCancelAutoPlay" envoyé par windows. Cela peut se faire sans interface graphique. J'ai le guid/pid/vid pour le périphérique dont la lecture automatique doit être désactivée.

Répondre

0

Il y a une entrée de Registre qui contrôle AutoRun:

HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 

Cela peut être configuré pour désactiver l'exécution automatique sur les types de périphériques spécifiques, de technet:

NoDriveTypeAutoRun 

Value Meaning 
0x1  Disables Autoplay on drives of unknown type. 
0x4  Disables Autoplay on removable drives. 
0x8  Disables Autoplay on fixed drives. 
0x10 Disables Autoplay on network drives. 
0x20 Disables Autoplay on CD-ROM drives. 
0x40 Disables Autoplay on RAM drives. 
0x80 Disables Autoplay on drives of unknown type. 
0xFF Disables Autoplay on all types of drives. 
+0

Comme l'implique la clé, cela ne fonctionne que pour les disques optiques, pas de périphériques de stockage de masse. Et il a des effets secondaires indésirables comme la rupture de la mise à jour du nom/icône du disque dans Poste de travail. La stratégie de groupe 'disable autoplay' est une meilleure façon de désactiver AutoPlay globalement. – bobince

+0

@bobince, je pensais CD/DVD puisque c'est là où je vois habituellement AutoPlay, j'ai mis à jour pour inclure des types de périphériques spécifiques. –

2

Bien sûr. Vous pouvez créer une fenêtre uniquement pour les messages. Cela vous donne un HWND sans ces messages WM_PAINT ennuyeux etc. L'autre façon est d'utiliser COM, IQueryCancelAutoplay

Questions connexes