cs_akaii
Messages postés109Date d'inscriptionmardi 10 janvier 2006StatutMembreDernière intervention14 février 2014
-
23 juil. 2008 à 06:37
neolego
Messages postés6Date d'inscriptionvendredi 13 février 2004StatutMembreDernière intervention30 juillet 2008
-
30 juil. 2008 à 10:24
Hello,
Je veux faire un script qui affiche une fenêtre demandant si il faut synchroniser les fichiers sur le lecteur D:\ de mon disque dur. Si la réponse est "Oui" la synchronisation se fait sans problème. Si la réponse est "Non" par contre ça ne fonctionne pas.
Ce que fait ou devrait faire le code ci-dessous, c'est tout simplement ouvrir la clé USB ou se trouve le script comme si on avait fait un click-droit "Explorer", mais ça ne fonctionne pas... j'espère que quelqu'un pourra m'aider
Code :
<ol class="olcode" id="code1">
<li>Dim oFso
</li>
<li>Dim sDrive
</li>
<li>Dim oSshell
</li>
<li>
</li>
<li>Set oFso= CreateObject("Scripting.FileSystemObject" )
</li>
<li>Set oShell= WScript.CreateObject("Shell.Application" )
</li>
<li>
</li>
<li>response=msgbox("Voulez-vous synchroniser les fichiers personnels avec votre ordinateur?", vbQuestion+vbYesNo, "Synchroniser?" )
</li>
<li>
</li>
<li>
</li>
<li>
if response=6 then
</li>
<li>
</li>
<li>Const OverWriteFiles = TRUE</li>
<li>
</li>
<li>Set objFSP = CreateObject("Scripting.FileSystemObject" )
</li>
<li>objFSP.CopyFolder "\\Autorun", "D:\Personnel\MEMORYSTICK", OverWriteFiles
</li>
<li>
</li>
<li>objFSP.CopyFolder "\\Autorun", "D:\Personnel\MEMORYSTICK", OverWriteFiles
</li>
<li>
</li>
<li>objFSP.CopyFolder "\\Backup", "D:\Personnel\MEMORYSTICK", OverWriteFiles
</li>
<li>
</li>
<li>objFSP.CopyFolder "\\Koniambo", "D:\Personnel\MEMORYSTICK", OverWriteFiles
</li>
<li>
</li>
<li>objFSP.CopyFolder "\\Personnel", "D:\Personnel\MEMORYSTICK", OverWriteFiles
</li>
<li>
</li>
<li>objFSP.CopyFolder "\\Software", "D:\Personnel\MEMORYSTICK", OverWriteFiles
</li>
<li>
</li>
<li>objFSP.CopyFolder "\\autorun.inf", "D:\Personnel\MEMORYSTICK", OverWriteFiles
</li>
<li>
</li>
<li>Else
</li>
<li>
</li>
<li>For Each sDrive In oFso.Drives
</li>
<li> If Not sDrive="A:" then
</li>
<li> If oFso.FolderExists(sDrive & "\aKaii" ) Then
</li>
<li> oShell.Open sDrive
</li>
<li> Exit For
</li>
<li> End If
</li>
<li> End If
</li>
<li>Next
</li>
<li>
</li>
<li>end if</li>
</ol>
Le script se relance à chaque fois que je click "Non", ca veut dire qu'il ouvre bien la clé USB, mais qu'il exécute automatiquement l'autorun => cercle perpétuel...
For Each sDrive in oFso.Drives
If sDrive.DriveType = 1 And sDrive.IsReady Then
If oFso.FolderExists(sDrive & var1) Then
MsgBox "DriveLetter: " & sDrive.DriveLetter & vbCrLf & _
"VolumeName: " & sDrive.VolumeName
sResult = BrowseForFile(sDrive & var1, var2 & var3)
Exit For
End if
End If
Next
MsgBox sResult
Set oFso = Nothing
Set oShell = Nothing
'-----------------------------------------
Function BrowseForFile(strPath, strFilter)
Dim oDialog, intResult
Set oDialog = CreateObject("UserAccounts.CommonDialog")
oDialog.Filter = strFilter
oDialog.InitialDir = strPath
oDialog.Flags = &H80000 + &H4 + &H8 'position de la fenêtre
intResult = oDialog.ShowOpen
BrowseForFile = oDialog.FileName 'récupération du nom du fichier sélectionné
End Function
"if response=6 then" peut être remplacé par "if response=vbYes then"
cs_akaii
Messages postés109Date d'inscriptionmardi 10 janvier 2006StatutMembreDernière intervention14 février 2014 23 juil. 2008 à 23:10
Hello Jean-Marc,
Je n'ai pas envie d'ouvrir une fenetre de dialog pour choisir d'explorer la clef USB, je veux juste que si la réponse est "Non" il ouvre la clef comme si il n'y avait pas d'autorun.
J'espère que j'ai bien expliqué ce que je voulais faire.