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 :

Mon script pour l'imprimante par défaut ne fonctionne pas avec un PC


Sujet :

VBScript

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Mon script pour l'imprimante par défaut ne fonctionne pas avec un PC
    Bonjour tout le monde,

    J'ai le script suivant :

    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
    Option Explicit
    Dim oNetwork, sPrintPath
    Set oNetwork = CreateObject("WScript.Network")
    Select Case oNetwork.ComputerName
    Case "SALLEINFOPC02"
       sPrintPath = "\\pharmacie\RICOHAfi"
    Case "SALLEINFOPC03"
       sPrintPath = "\\pharmacie\RICOHAfi"  
    Case "SALLEINFOPC04"
       sPrintPath = "\\pharmacie\RICOHAfi"
      Case "SALLEINFOPC05"
       sPrintPath = "\\pharmacie\RICOHAfi"
    Case "SALLEINFOPC06"
         sPrintPath = "\\pharmacie\RICOHAfi"
    Case "SALLEINFOPC07"
       sPrintPath = "\\pharmacie\RICOHAfi"
    Case "SALLEINFOPC08"
       sPrintPath = "\\pharmacie\RICOHAfi"
    Case "SALLEINFOPC09"
       sPrintPath = "\\pharmacie\RICOHAfi"
    Case "SALLEINFOPC10"
       sPrintPath = "\\pharmacie\RICOHAfi"
    Case "SALLEINFOPC11"
       sPrintPath = "\\pharmacie\RICOHAfi"
    Case "SALLEINFOPC12"
       sPrintPath = "\\pharmacie\RICOHAfi"
    Case "SALLEINFOPC13"
       sPrintPath = "\\pharmacie\RICOHAfi"
    Case "SALLEINFOPC14"
       sPrintPath = "\\pharmacie\RICOHAfi"
    Case "SALLEINFOPC15"
       sPrintPath = "\\pharmacie\RICOHAfi"
    Case "SALLEINFOPC16"
       sPrintPath = "\\pharmacie\RICOHAfi"
    Case "SALLEINFOPC17"
       sPrintPath = "\\pharmacie\RICOHAfi"
    Case "SALLEINFOPC18"
       sPrintPath = "\\pharmacie\RICOHAfi"
    Case "SALLEINFOPC19"
       sPrintPath = "\\pharmacie\RICOHAfi"
    Case "PHARMACIE"
       sPrintPath = "\\pharmacie\RICOHAfi\*.*"
    End Select
    oNetwork.AddWindowsPrinterConnection sPrintPath
    oNetwork.SetDefaultPrinter sPrintPath
    Il permet de mettre par défaut une imprimante par rapport au nom de l'ordinateur.

    Le problème est sur cet ordinateur (le 19) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Case "SALLEINFOPC19"
       sPrintPath = "\\pharmacie\RICOHAfi"
    J'obtiens un message d'erreur :

    voir attaché

    à la ligne 44 :

    oNetwork.AddWindowsPrinterConnection sPrintPath
    Sauriez-vous m'aider sur ce coup là svp car il y'a un de mes ordis en réseau que je ne peux plus utiliser pour imprimer.

    Merci d'avance pour votre aide.

    beegees

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    L'erreur te dit que le nom de l'imprimante n'est pas valide.
    Certainement une erreur dans le chemin réseau.

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par ced600 Voir le message
    L'erreur te dit que le nom de l'imprimante n'est pas valide.
    Certainement une erreur dans le chemin réseau.
    Salut,

    En fait c'est parce que l'imprimante n'était pas installé sur le PC.

    Bonne soirée.

    beegees

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Citation Envoyé par beegees Voir le message
    Salut,

    En fait c'est parce que l'imprimante n'était pas installé sur le PC.

    Bonne soirée.

    beegees
    lol

    En effet dans ce cas cela ne peut pas marcher.
    En plus après on se sent un peu
    Mais bon cela arrive à tout le monde.

    Perso pour le code j'aurais plus référencé dans un dictionnaire le nom du pc et l'adresse réseau de son imprimante, et utilisé ComputerName comme clé (nom du pc) pour appellé les deux méthodes sur la valeur de la clé.

  5. #5
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Merci pour ta réponse.

    Par rapport à mon code, tu suggères ceci :

    Perso pour le code j'aurais plus référencé dans un dictionnaire le nom du pc et l'adresse réseau de son imprimante, et utilisé ComputerName comme clé (nom du pc) pour appellé les deux méthodes sur la valeur de la clé.
    Est-ce une solution VBScript ?

    Si oui, sais-tu modifier mon code pour me montrer ce que ça pourrais donner ?

    Merci d'avance.

    beegees

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Ce n'est pas une solution "VBScript", le VBS n'est qu'un langage. Là je parle d'un autre algorithme.

    Voici un exemple d'utilisation de dictionnaire :
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    ' création et utilisation d'un dictionnaire
    Set dico=CreateObject("Scripting.Dictionary")
    ' remplisage dico
    dico.add "clé1","valeur1"
    dico.add "clé2","valeur2"
    dico.add "clé3","valeur3"
    ' nombre d'éléments
    wscript.echo "Le dictionnaire a " & dico.count & " éléments"
    ' liste des clés
    wscript.echo "liste des clés"
    cles=dico.keys
    For i=0 To ubound(cles)
    wscript.echo cles(i)
    Next
    ' liste des valeurs
    wscript.echo "liste des valeurs"
    valeurs=dico.items
    For i=0 To ubound(valeurs)
    wscript.echo valeurs(i)
    Next
    ' liste des clés et valeurs
    wscript.echo "liste des clés et valeurs"
    cles=dico.keys
    For i=0 To ubound(cles)
    wscript.echo "dico(" & cles(i) & ")=" & dico.item(cles(i))
    Next
    ' recherche d'éléments
    ' clé1
    If dico.exists("clé1") Then
    wscript.echo "La clé clé1 existe dans le dictionnaire et la valeur associée est " &
    dico.item("clé1")
    Else
    wscript.echo "La clé clé1 n'existe pas dans le dictionnaire"
    End If
    ' clé4
    If dico.exists("clé4") Then
    wscript.echo "La clé clé4 existe dans le dictionnaire et la valeur associée est " &
    dico.item("clé4")
    Else
    wscript.echo "La clé clé4 n'existe pas dans le dictionnaire"
    End If
    ' on enlève la clé 1
    dico.remove("clé1")
    ' liste des clés et valeurs
    wscript.echo "liste des clés et valeurs après suppression de clé1"
    cles=dico.keys
    For i=0 To ubound(cles)
    wscript.echo "dico(" & cles(i) & ")=" & dico.item(cles(i))
    Next
    ' on supprime tout
    dico.removeall
    ' liste des clés et valeurs
    wscript.echo "liste des clés et valeurs après suppression de tous les éléments"
    cles=dico.keys
    For i=0 To ubound(cles)
    wscript.echo "dico(" & cles(i) & ")=" & dico.item(cles(i))
    Next
    ' fin
    wscript.quit 0
    Je l'ai récupéré ici, le lien peux toujours intéresser :
    http://tahe.developpez.com/web/vbscr...e=page_3#LII-R

    Voilà, je pense qu'avec l'exemple tu verras comment pouvoir améliorer ton script en prenant comme couple clé - valeur par exemple :
    Nom du PC - sPrintPath

    Voir un couple :
    Tableau de Nom du PC - sPrintPath

    Edit :
    En complément de l'exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ' création et utilisation d'un dictionnaire
    Set dico=CreateObject("Scripting.Dictionary")
    ' remplisage dico
    dico.add "clé1","valeur1"
    dico.add "clé2","valeur2"
    dico.add "clé3","valeur3"
     
    'key représente le clé.
    For Each Key In dico
        wscript.echo dico(Key) 'on affiche les valeurs.
    Next
    Edit 2 :
    Voila au final j'aurais fais un truc du genre, mais je n'ai pas pu tout tester car je ne voulais pas reconfigurer mon imprimante réseau
    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
    ' création et utilisation d'un dictionnaire
    Set dico=CreateObject("Scripting.Dictionary")
    ' remplisage dico
    dico.add "SALLEINFOPC01","\\pharmacie\RICOHAfi"
    dico.add "SALLEINFOPC02","\\pharmacie\RICOHAfi"
    dico.add "SALLEINFOPC03","\\pharmacie\RICOHAfi"
    dico.add "SALLEINFOPC04","\\pharmacie\RICOHAfi"
    dico.add "SALLEINFOPC05","\\pharmacie\RICOHAfi"
    dico.add "SALLEINFOPC09","\\pharmacie\RICOHAfi"
    dico.add "PHARMACIE","\\pharmacie\RICOHAfi\*.*"
     
    Dim oNetwork
    Set oNetwork = CreateObject("WScript.Network")
     
    'key représente le clé.
    For Each Key In dico
    	If Key =  oNetwork.ComputerName Then
    	   oNetwork.AddWindowsPrinterConnection dico(Key)
               oNetwork.SetDefaultPrinter dico(Key)
    	   wscript.echo "Le PC " & Key & " a pour imprimante réseau : " & dico(Key)
    	End If
        wscript.echo dico(Key) 'on affiche les valeurs.
    Next

  7. #7
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Un tout grand merci pour ta réponse et surtout pour le temps que tu y as consacré.

    Je vais tester ton code.

    Encore merci.

    beegees

Discussions similaires

  1. [XL-2007] Code pour selection de cellules qui ne fonctionne pas avec la fonction "Locked"
    Par coco.on.off dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/07/2014, 18h01
  2. Besoin d'aide : Script pour renommer imprimante par défaut
    Par ryohazuki100 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 01/08/2013, 10h37
  3. [Wamp] error_log par défaut ne fonctionne pas?
    Par badoumba dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 17/12/2011, 07h23
  4. Mon script pour Tester un bouton radio ne fonctionne pas.
    Par Invité dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 10/06/2011, 00h39
  5. Réponses: 2
    Dernier message: 10/05/2006, 09h22

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