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 :

impression en A4


Sujet :

VBScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4
    Par défaut impression en A4
    bonjour,

    j'ai 250 imprimantes dans mon réseau et plus de la moitié imprime au format Letter. J'e n'ai pas envie de passer sur les 250 impriamnte et de changer manuellement celles-ci en A4.

    J'aimerais savoir si il y a un moyen rapide de le faire en VBScript.

    Voici déjà le script que j'ai fait :

    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
     
    '===============================
    'Déclaration des variables
     
    Option Explicit
    Dim objWMIService	'connexion a WMI
    Dim colImp, colImpr		'collection des imprimantes
    Dim objImp, objImpr		'objet imprimantes
     
     
    '=================================
    '=================================
    'Main body
     
    Set objWMIService = GetObject("winmgmts:\\")
    Set colImp = objWMIService.ExecQuery ("Select Caption, PaperSize from Win32_PrinterConfiguration")
     
    WScript.Echo "Imprimantes intallées"
     
    For Each objImp in colImp
    	WScript.Echo "	Nom: " & objImp.Name
    	call TypePapier(objImp.PaperSize)
    	WScript.Echo "	"
    Next
     
     
     
    '=================================
    '=================================
    'PROCEDURES
     
    Sub TypePapier(taille)
    	Select case taille
    		case 1
    			WScript.Echo "	Taille: A4"
    		case 9
    			WScript.Echo "	Taille: Letter"
    		case else
    			WScript.Echo "	Taille: Autre taille"
    	End Select
    End SUb
     
    '================================
    'FONCTION
     
    '================================

    J'aimerais en fait savoir si il y a un moyen pour changer la valeur de PaperSize et de le passer en A4.

    Cdt,
    Forbanm

  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

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4
    Par défaut
    merchi pour le lien

    mais en fait la propriétée "PaperSizeSupported" et "PaperTypesAvailable" m'informe uniquement sur ce qui est possible d'avoir et non pas sur le format actuel.

    Il y a dans win32_PrinterConfiguration la propriétée PaperSize qui donne la taille qui est affecté mais je ne sais pas comment modifier cette valeur.

    N'y a t'il pas une commande du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set PaperSize= ma nouvelle valeur 
    ?? (cette ligne ne fonctionne pas !!)

  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
    Par défaut
    Objet.argument = valeur
    Essaye cela, mais ce n'est possible que si l'argument est en acces lecture/ecriture (read/write), si tu cliques sur chacun des arguments de l'objets sur la page que je t'ai donné, tu devrais voir apparaître une bulle jaune où il est spécifié des détail sur l'argument et notement son type d'accés.

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

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    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

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4
    Par défaut
    En fait j'ai trouvé via le registre.

    Il me faut passer par HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\<Nom de l'imprimante>\PrinterDriverData\TrayFormTable

    Mais le problème est que je ne vois pas et ne sais pas comment lire/modifier une clé de type REG_MULTI_SZ

  7. #7
    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
    Par défaut
    Tu n'as pas assez exploité le lien que je t'ai passé. Regarde ici :
    http://msdn.microsoft.com/library/de...__registry.asp

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4
    Par défaut
    Trouvé et corrigé

    voici le code

    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
    60
    61
    62
    63
     
    '===============================
    'Déclaration des variables
     
    Option Explicit
    Dim objWMIService	'connexion a WMI
    Dim colImp, colImpr		'collection des imprimantes
    Dim objImp, objImpr		'objet imprimantes
    Dim WSHShell, strRegKey
    Dim valeur, i
     
    '=================================
    '=================================
    'Main body
     
    Set objWMIService = GetObject("winmgmts:\\")
    Set colImp = objWMIService.ExecQuery ("Select  Caption, PaperSize from Win32_PrinterConfiguration")
    Set WSHShell = WScript.CreateObject("WScript.Shell") 
    strRegKey="HKLM\SYSTEM\CurrentControlSet\Control\Print\Printers\" 
     
     
    WScript.Echo "====== Imprimantes intallées ==== "
     
    'Pour chaque impriamnte 
    For Each objImp in colImp
    	WScript.Echo "	Nom: " & objImp.Name	'affiche le nom de l'imprimante
    	valeur = WshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Print\Printers\" & objImp.Name & "\PrinterDriverData\TrayFormTable") 'on affecte à valeur la clé de registre
     
    For i = 1 To UBound(valeur) step 3
    	if valeur(i) = "Letter" then
    		WshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\Print\Printers\" & objImp.Name & "\PrinterDriverData\TrayFormTable","A4"
    		WScript.echo "		Value " & i+1 & " à changer: " & valeur(i)
    	Else
    		WScript.echo "		Value " & i+1 & " is: " & valeur(i)
    	End if
     
    Next
     
     
    	'WScript.Echo "	La valeur: " &  valeur
    	WScript.Echo "	"
    Next
     
     
     
    '=================================
    '=================================
    'PROCEDURES
     
    Sub TypePapier(taille)
    	Select case taille
    		case 1
    			WScript.Echo "	Taille: A4"
    		case 9
    			WScript.Echo "	Taille: Letter"
     
     
    		case else
    			WScript.Echo "	Taille: Autre taille"
    	End Select
    End SUb
     
    '================================

Discussions similaires

  1. [CR][VB6] Impression d'un état depuis VB
    Par sda dans le forum SDK
    Réponses: 3
    Dernier message: 06/02/2007, 17h27
  2. Quick Report et impression de données hors BDD
    Par gRRosminet dans le forum C++Builder
    Réponses: 8
    Dernier message: 19/08/2002, 09h47
  3. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 14h26
  4. Impression d'image bmp
    Par Invité dans le forum Langage
    Réponses: 6
    Dernier message: 18/07/2002, 09h38
  5. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37

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