IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Pourquoi code fonctionne nickel sur une machine et pas sur l'autre ?


Sujet :

VBScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    425
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 425
    Points : 129
    Points
    129
    Par défaut Pourquoi code fonctionne nickel sur une machine et pas sur l'autre ?
    Bonjour tout le monde,

    Pourriez-vous dans la mesure du possible vérifier mon code.
    Il fonctionne parfaitement sur plusieurs machines et pas sur un autre.
    Hors, ces machines tournent tous sur XP ?

    Je constate, que lors du lancement du script, il y a un accès vers le lecteur 1.44, et puis il saute sur l’USB ? Est-ce normal ?

    Je dois lancer le script deux trois fois et puis il fonctionne parfaitement aussi.

    Le but primaire de ce script : vérifier les ports usb pour voir s’il y a un disque MERLIN dessus et puis faire le reste.

    Bizarre, est-ce lié à la carte mère de la machine ?

    Bav


    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    strComputer = "." 
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
    Set colDisks = objWMIService.ExecQuery ("Select * from Win32_LogicalDisk Where DriveType=2 And VolumeName='MERLIN'") 
    For each objDisk in colDisks 
        If objDisk.VolumeName = "MERLIN" then 
                Merlindr = objDisk.Name    
    Dim stFichierDest
    Dim stLigne1
    Dim stLigne2
    Dim st
    Dim tbLg
    Dim tb
    Dim i
    Dim FSO, File1, ParentFolderPath, FileName
    FileName = "FM_vbscript.vbs"
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set File1 = FSO.GetFile(FileName)
    ParentFolderPath = File1.ParentFolder
    Const ForReading = 1
    Const ForWriting = 2
    Const ForAppending = 8
    stRep = Merlindr 'Répertoire de travail
    stRep2 = ParentFolderPath&"\MerlinImport\"
    stFichierSource = CreateObject("htmlfile").ParentWindow.ClipboardData.Getdata("text") & ".log"
    stFichierDest = CreateObject("htmlfile").ParentWindow.ClipboardData.Getdata("text") & ".txt"
    Set oFichier = FSO.OpenTextFile(stRep & stFichierSource, ForReading, True) 
    if not oFichier.AtEndofStream then st = oFichier.ReadAll 
    if st = "" Then wscript.quit  
    oFichier.Close 
    tbLg = Split(st, Chr(10))
    For i = 0 To UBound(tbLg) 'parcours les lignes
      tb = Split(tbLg(i), Chr(&H1C))
      If (UBound(tb) >= 2) Then
        stLigne1 = stLigne1 & tb(0) & vbTab
        stLigne2 = stLigne2 & tb(2) & vbTab
      End If
    Next
    Set oFichier = FSO.OpenTextFile(stRep2 & stFichierDest, ForWriting, True) 
    oFichier.WriteLine(stLigne1)
    oFichier.WriteLine(stLigne2)
    oFichier.Close        
    wscript.quit         
    else
    wscript.quit  
    End If
    next
    wscript.quit

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 299
    Points : 3 554
    Points
    3 554
    Par défaut
    salut,
    il y a un accès vers le lecteur 1.44, et puis il saute sur l’USB ? Est-ce normal ?
    a priori oui puisque DriveType=2 correspond à "Removable Drive" et une disquette est tout ce qu'il y a de + "removable"

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    425
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 425
    Points : 129
    Points
    129
    Par défaut
    Hmmm, effectivement.

    Est-ce que je peux spécifiquement exclure le 1.44 ?

    Car si je ne spécifie pas le type 2, le script mais nettement plus longtemps à s'exécuter.

    ---

    J'ai trouvé :

    MediaType ; nr 11 = Removable media other than floppy
    Est-ce que cela peut aider ? et comment l'intégrer ?

  4. #4
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 299
    Points : 3 554
    Points
    3 554
    Par défaut
    un peu de code spécifique pour les périph. usb: http://www.microsoft.com/technet/scr...5/hey0315.mspx

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    425
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 425
    Points : 129
    Points
    129
    Par défaut
    Je connaisait.
    Le problème avec celui là c'est qu'il ne donne pas le 'driveletter F: G: etc...' du stick.
    Et j'ai justement besoin de ça.

    Merci en tout cas

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    425
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 425
    Points : 129
    Points
    129
    Par défaut
    J'ai trouvé ceci, mais il ne fonctionne pas dans ce sens que même s'il y a un stick connecté, il me donne comme résultat : pas de stick ?
    Hors je vois qu'il accède à mon stick ?

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    'Find USB Stick
    Set dicUSBDrives = GetUSBDrives
    '---------------------------------------------------------------------------------------------------------------------------------------------------------------------
    If dicUSBDrives.Count = 0 Then
    WScript.Echo "No USB sticks found!"
    Else
    WScript.Echo "Found a USB stick:"
    For Each strUSBDrive In dicUSBDrives
    WScript.Echo "Using"  & strUSBDrive & "\"  & "for Backup"
    Target = strUSBDrive & "\MyDocuments"
    Next
    End If
    '---------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Function GetUSBDrives
    ' Populate a dictionary object with USB drive letters
    Set dicUSBList = CreateObject("Scripting.Dictionary")
       dicUSBList.CompareMode = vbTextCompare
       strComputer = "."   
       Set objWMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
       Set colDiskDrives = objWMI.ExecQuery ("Select DeviceID from Win32_DiskDrive WHERE InterfaceType='USB'")
               For Each objDiskDrive In colDiskDrives
                       strDeviceID = objDiskDrive.DeviceID
                       strEscapedDeviceID = Replace(strDeviceID, "\", "\\")
                   Set colDiskPartitions = objWMI.ExecQuery _
                       ("ASSOCIATORS OF {Win32_DiskDrive.DeviceID=""" &  strEscapedDeviceID & """} WHERE " _
                       &  "AssocClass = Win32_DiskDriveToDiskPartition")
               For Each objDiskPartition In colDiskPartitions
                   Set colLogicalDisks = objWMI.ExecQuery ("ASSOCIATORS OF {Win32_DiskPartition.DeviceID=""" & _
                       objDiskPartition.DeviceID & """} WHERE " & _
                       "AssocClass = Win32_LogicalDiskToPartition")
               For Each objLogicalDisk In colLogicalDisks
                   dicUSBList.Add objLogicalDisk.DeviceID, ""
               Next
           Next
    Next
    Set GetUSBDrives = dicUSBList
    End Function

  7. #7
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    testé avec 2 clés (SONY et Intuix) ça fonctionne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bouton facebook présent sur une page mais pas sur une autre
    Par mandragore59va dans le forum Facebook
    Réponses: 1
    Dernier message: 09/11/2011, 03h25
  2. Réponses: 10
    Dernier message: 10/07/2009, 10h57
  3. HttpWebRequest fonctionne sur une appli console, pas sur une appli Web
    Par hollywood dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 23/04/2009, 14h34
  4. Réponses: 0
    Dernier message: 03/04/2008, 15h14
  5. Réponses: 0
    Dernier message: 07/12/2007, 13h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo