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 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    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"
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  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 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    un peu de code spécifique pour les périph. usb: http://www.microsoft.com/technet/scr...5/hey0315.mspx
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  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
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

+ 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