Bonjour,
Je souhaite déconnecter automatiquement un périphérique amovible via un VBScript dans Windows 7.
Le problème avec ce code c'est qu'il ne fonctionne pas sur Windows 7.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2" ) Set colItems = objWMIService.ExecQuery _ ("Select * From Win32_Volume Where Name = 'D:\\'") intCount = colItems.Count If intCount <> 0 Then For Each objItem in colItems deco = MsgBox("Un périphérique amovible utilise la lettre D. Celui-ci doit être déconnecté avant la poursuite de l'opération. Voulez-vous le déconnecter maintenant ?", vbYesNo, "Périphérique amovible") If deco = vbYes Then objItem.Dismount(True, True) End If Next End If
J'ai donc essayé de faire ça autrement :
Ce code affiche la fenêtre "Retirer le périphérique en toute sécurité". Là je sélectionne le périphérique à déconnecter. Mais quand j'essaye de déconnecter, il m'affiche le message : "Le périphérique JetFlash...n'est pas amovible et ne peut être déconnecté."
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2" ) Set colItems = objWMIService.ExecQuery _ ("Select * From Win32_Volume Where Name = 'D:\\'") intCount = colItems.Count If intCount <> 0 Then For Each objItem in colItems deco = MsgBox("Un périphérique amovible utilise la lettre D. Celui-ci doit être déconnecté avant la poursuite de l'opération. Voulez-vous le déconnecter maintenant ?", vbYesNo, "Périphérique amovible") If deco = vbYes Then Set WshShell = WScript.CreateObject("WScript.Shell") intReturn = WshShell.Run("rundll32.exe shell32.dll,Control_RunDLL hotplug.dll") End If Next End If
Par contre si j'essaye de déconnecter ce périphérique en passant par le barre de notification, ça marche.
Je ne vois pas d'où peut venir le problème.
Merci d'avance pour votre aide.
Partager