Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : [VBS] Ouvrir un lecteur spécifique. [ Langages dérivés / VBScript ] (akaii)

mercredi 23 juillet 2008 à 06:37:45 | [VBS] Ouvrir un lecteur spécifique.

akaii

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 :
  1. Dim oFso
  2. Dim sDrive
  3. Dim oSshell
  4. Set oFso= CreateObject("Scripting.FileSystemObject" )
  5. Set oShell= WScript.CreateObject("Shell.Application" )
  6. response=msgbox("Voulez-vous synchroniser les fichiers personnels avec votre ordinateur?", vbQuestion+vbYesNo, "Synchroniser?" )
  7. if response=6 then
  8. Const OverWriteFiles = TRUE
  9. Set objFSP = CreateObject("Scripting.FileSystemObject" )
  10. objFSP.CopyFolder "\\Autorun", "D:\Personnel\MEMORYSTICK", OverWriteFiles
  11. objFSP.CopyFolder "\\Autorun", "D:\Personnel\MEMORYSTICK", OverWriteFiles
  12. objFSP.CopyFolder "\\Backup", "D:\Personnel\MEMORYSTICK", OverWriteFiles
  13. objFSP.CopyFolder "\\Koniambo", "D:\Personnel\MEMORYSTICK", OverWriteFiles
  14. objFSP.CopyFolder "\\Personnel", "D:\Personnel\MEMORYSTICK", OverWriteFiles
  15. objFSP.CopyFolder "\\Software", "D:\Personnel\MEMORYSTICK", OverWriteFiles
  16. objFSP.CopyFolder "\\autorun.inf", "D:\Personnel\MEMORYSTICK", OverWriteFiles
  17. Else
  18. For Each sDrive In oFso.Drives
  19.          If Not sDrive="A:" then
  20.             If oFso.FolderExists(sDrive & "\aKaii" ) Then
  21.                oShell.Open sDrive
  22.                Exit For           
  23.             End If
  24.          End If
  25. Next
  26. end if


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...


mercredi 23 juillet 2008 à 11:55:23 | Re : [VBS] Ouvrir un lecteur spécifique.

JMO

Membre Club


 Bonjour,

Il faut utiliser un CommonDialog pour afficher le répertoire souhaité sur la clé USB.


exemple:

Option Explicit
Dim oFso, oShell
Dim sDrive, sResult
Dim var1, var2, var3

var1 = "\
aKaii"   'choix du folder
var2 = "Selection fichier"
var3 = "|*.*|"   'tous les fichiers

Set oFso = CreateObject("Scripting.FileSystemObject")
Set oShell= WScript.CreateObject("Shell.Application" )
' DriveType:
' 0: "Inconnu"
' 1: "Amovible"
' 2: "Fixe"
' 3: "Réseau"
' 4: "CD-ROM"
' 5: "Disque virtuel"

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"


jean-marc

mercredi 23 juillet 2008 à 23:10:03 | Re : [VBS] Ouvrir un lecteur spécifique.

akaii

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.

Merci


mercredi 30 juillet 2008 à 10:24:32 | Re : [VBS] Ouvrir un lecteur spécifique.

neolego

bonjour,

utilise un turc dans le genre :

reponse = MsgBox ("ton text",vbYesNo+Vbquestion,"test")
select case reponse
          case VbYes : 
                  <ton code>
          case VbNo:
                  <ton code>
end select

normalement se devrait fonctionnné (enfin si j'ai bien compris se que tu voulais faire)




Cette discussion est classé dans : personnel, copyfolder, overwritefiles, objfsp, memorystick


Répondre à ce message

Sujets en rapport avec ce message

MsgBox Personnel... Bloquer la fenetre appelante - comment faire ? [ par Ackman ] Bonjour,Je souhaiterais créer mes propres Msgbox mais le problème est que je ne peuxpas bloquer la fenêtre qui la créer...On passe de l'une à l'autre Fiche personnel avec données excel [ par nanou ] Bonjour à tous les futé(e)s d'excel,Je souhaite crée sous excel une fiche personnel :nom prenomdépartementfonction photoMes données se trouvent sur u copier un dossier avec copyfolder [ par slayer ] j'ai essayer dans tous les sens , et pas moyen de copier un dossier avec cette fonction copyforder , c'est qui , qui veut bien m'expliqué comment on f FileSystemObject [ par PEB ] Lorsque j'utilise le FSO j'ai un problème avec la méthode CopyFolder qui me renvoie le message d'erreur suivant :Expected: =Mon code est le suivant : Fso.CopyFolder (Type Incompatible) [ par Hansol ] Voilà, je veux copier un document complet appeler "UserData" vers un document nouvellement créé appeler "SavesFiles". Et lorsque j'applique la command CopyFolder avec nom long [ par congru ] je n'arrive pas à copier des repertoires qui ont des nom long du styleC:\Documents TOTO\2-TITI - Modèles de base\Manuel Charte PowerPointquelqu'un pou Big Problem [ par Kevb37 ] hello, qq'un pourait résoudre mon problème svp ?le voici : j'essie depuis quelques jours de copié un dossier entiers avec ses sous dossiers... j'ai es fso copyfolder et progress bar [ par ohector ] J'aimerai faire augmenter une progress bar pendant que la fso copyfolder est en cours merci Petite Question [ par alvirtuel ] Bonjour,Juste un petite question tout simpleComment ds le script suivant mettre des variables pour que lenom utilisateur ne soit pas fixe (user=profil OutLook:Mettre les mails(inBox) ds un dossier personnel [ par oliv76n ] Bonjour,Comment faire pour deplacer un mail dans un dossier personnel?Olivier


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.