[R] Comment modifier les propriétés d'une imprimante...
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
Serge63
- Niveau 4

- Messages : 71
- Enregistré le : lun. 22 juin 2009 14:54
- Localisation : Clermont-ferrand
- Status : Hors ligne
[R] Comment modifier les propriétés d'une imprimante...
Bonjour à tous
Administrateur d'un parc informatique, je dois modifier les propriétés de plusieurs imprimantes (un photocopieur RICOH MP 2851) installées sur des sites géographique différents et distants. Le but est d'activer les accessoires comme le module "recto/verso" ou le module "trieur/agrafeur".
Les utilisateurs des postes de travail n'ont aucun droit d'administration. Je veux donc créer un script qui fonctionnera "en tant que administrateur" (j'ai déjà le code pour cette partie).
Ce qu'il me manque, c'est comment :
- soit ouvrir la fenêtre des propriétés de l'imprimante pour que l'utilisateur active lui même les accessoires.
- soit modifier directement les propriétés de l'imprimante.
Merci d'avance.
Administrateur d'un parc informatique, je dois modifier les propriétés de plusieurs imprimantes (un photocopieur RICOH MP 2851) installées sur des sites géographique différents et distants. Le but est d'activer les accessoires comme le module "recto/verso" ou le module "trieur/agrafeur".
Les utilisateurs des postes de travail n'ont aucun droit d'administration. Je veux donc créer un script qui fonctionnera "en tant que administrateur" (j'ai déjà le code pour cette partie).
Ce qu'il me manque, c'est comment :
- soit ouvrir la fenêtre des propriétés de l'imprimante pour que l'utilisateur active lui même les accessoires.
- soit modifier directement les propriétés de l'imprimante.
Merci d'avance.
Modifié en dernier par Serge63 le mer. 26 janv. 2011 17:17, modifié 1 fois.
- jl56
- Niveau 7

- Messages : 415
- Enregistré le : mer. 24 oct. 2007 22:42
- Localisation : 56000
- Status : Hors ligne
Re: [..] Comment modifier les propriétés d'une imprimante...
Bonjour,
Dans un de mes scripts j'utilise pour cela rundll32 printui.dll,PrintUIEntry ......
exécute cette commande et tu aura toute la syntaxe
rundll32 printui.dll,PrintUIEntry /?
Enregistrer tous les paramètres de l'imprimante dans un fichier :
rundll32 printui.dll,PrintUIEntry /Ss /n "imprimante" /a "fichier.dat"
Enregistrer tous les paramètres de l'imprimante à partir d'un fichier :
rundll32 printui.dll,PrintUIEntry /Sr /n "imprimante" /a "fichier.dat"
A+ JL56
Dans un de mes scripts j'utilise pour cela rundll32 printui.dll,PrintUIEntry ......
Code : Tout sélectionner
RunWait('rundll32 printui.dll,PrintUIEntry /q /Sr /n "'&$nom_imprimante&'" /a "'&$nomdufichierparametrage&'" 2 7 c d g m u'rundll32 printui.dll,PrintUIEntry /?
Enregistrer tous les paramètres de l'imprimante dans un fichier :
rundll32 printui.dll,PrintUIEntry /Ss /n "imprimante" /a "fichier.dat"
Enregistrer tous les paramètres de l'imprimante à partir d'un fichier :
rundll32 printui.dll,PrintUIEntry /Sr /n "imprimante" /a "fichier.dat"
A+ JL56
-
Serge63
- Niveau 4

- Messages : 71
- Enregistré le : lun. 22 juin 2009 14:54
- Localisation : Clermont-ferrand
- Status : Hors ligne
Re: [..] Comment modifier les propriétés d'une imprimante...
@JL56
Merci pour l'astuce, je vais essayer ça tout de suite...
Merci pour l'astuce, je vais essayer ça tout de suite...
-
Serge63
- Niveau 4

- Messages : 71
- Enregistré le : lun. 22 juin 2009 14:54
- Localisation : Clermont-ferrand
- Status : Hors ligne
Re: [..] Comment modifier les propriétés d'une imprimante...
j'ai trouvé plusieurs pistes intéressantes :
1) mon script fera afficher la fenêtre des propriétés pour que l'utilisateur modifie lui même les propriétés :
==> pas de soucis pour le faire, mais c'est dangereux car à ce moment là, l'utilisateur a accès à toutes les propriétés et il a tous les droits sur l'imprimante puisque le script est exécuté "en tant que administrateur"...
2) je modifie les propriétés sur une imprimante et je les enregistre dans un fichier pour faire un fichier "par défaut". ensuite, j'inclus ce fichier dans mon script qui restaurera les propriétés pour chaque imprimante
==> pas de soucis pour cela non plus, mais cela va écraser les réglages qui auraient déjà été fait ; or je ne veux modifier que les propriétés qui m'intéressent...
3) mon script enregistre les propriétés de l'imprimante dans un fichier, puis il modifie les propriétés concernées dans ce fichier et enfin, il restaure les nouvelles propriétés de l'imprimante depuis ce fichier.
==> c'est là que je sèche... je sais quelles données seront remplacées et par quoi, mais je ne sais pas comment modifier le fichier.dat
si quelqu'un a une piste, merci d'avance...
ps : j'ajoute en pièce jointe les fichiers qui m'ont servi pour la comparaison et les différences que j'ai trouvé
1) mon script fera afficher la fenêtre des propriétés pour que l'utilisateur modifie lui même les propriétés :
==> pas de soucis pour le faire, mais c'est dangereux car à ce moment là, l'utilisateur a accès à toutes les propriétés et il a tous les droits sur l'imprimante puisque le script est exécuté "en tant que administrateur"...
2) je modifie les propriétés sur une imprimante et je les enregistre dans un fichier pour faire un fichier "par défaut". ensuite, j'inclus ce fichier dans mon script qui restaurera les propriétés pour chaque imprimante
==> pas de soucis pour cela non plus, mais cela va écraser les réglages qui auraient déjà été fait ; or je ne veux modifier que les propriétés qui m'intéressent...
3) mon script enregistre les propriétés de l'imprimante dans un fichier, puis il modifie les propriétés concernées dans ce fichier et enfin, il restaure les nouvelles propriétés de l'imprimante depuis ce fichier.
==> c'est là que je sèche... je sais quelles données seront remplacées et par quoi, mais je ne sais pas comment modifier le fichier.dat
si quelqu'un a une piste, merci d'avance...
ps : j'ajoute en pièce jointe les fichiers qui m'ont servi pour la comparaison et les différences que j'ai trouvé
- Fichiers joints
-
- comparaison.7z
- (9.2 Kio) Téléchargé 115 fois
- jl56
- Niveau 7

- Messages : 415
- Enregistré le : mer. 24 oct. 2007 22:42
- Localisation : 56000
- Status : Hors ligne
Re: [..] Comment modifier les propriétés d'une imprimante...
Bonsoir,
Cela me semble très hasardeux de modifier le fichier.dat
Je ferais comme ceci ( sous toutes réserve)
Le résultat de vos expériences peu m'être utile tenez moi au courant SVP merci
A+ JL56
Cela me semble très hasardeux de modifier le fichier.dat
Je ferais comme ceci ( sous toutes réserve)
Code : Tout sélectionner
$fichier_avant=FileRead("c:\avant.dat")
$1erbloc_avant=FileRead("c:\difference avant 1er bloc.txt");stockez le bloc dans un fichier.txt
$1erbloc_apres=FileRead("c:\difference apres 1er bloc.txt")
StringReplace($fichier_avant,$1erbloc_avant,$1erbloc_apres)
$file = FileOpen("c:\apres.dat", 2)
FileWrite($file,$fichier_avant)
FileClose($file)A+ JL56
-
Serge63
- Niveau 4

- Messages : 71
- Enregistré le : lun. 22 juin 2009 14:54
- Localisation : Clermont-ferrand
- Status : Hors ligne
Re: [..] Comment modifier les propriétés d'une imprimante...
@JL56
cette solution ne fonctionne pas car le fichier en entrée contient des sauts de ligne différents sur chaque ligne (un coup on trouve @CR, un autre coup on trouve @LF, etc...).
du coup, j'ai fait une adaptation en lisant le fichier en entrée ligne par ligne et j'arrive à créer le fichier de sortie en apportant les modifications que je souhaite par rapport au fichier en entrée.
mais je suis confronté à un dernier soucis :
si je fais un simple FileWrite, il ajoute les lignes les unes à la suite des autres et le fichier n'aura pas le bon formatage
si je fais un FileWriteLine, il ajoute @CRLF à la fin de chaque ligne mais le fichier n'aura toujours pas le bon formatage
est-ce qu'il existe un moyen de savoir quel est le retour à la ligne (ou retour chariot) utilisé quant on lit une ligne dans un fichier ? pour que je puisse choisir entre @CR ou @LF à ajouter à la fin de ma ligne à écrire ?
cette solution ne fonctionne pas car le fichier en entrée contient des sauts de ligne différents sur chaque ligne (un coup on trouve @CR, un autre coup on trouve @LF, etc...).
du coup, j'ai fait une adaptation en lisant le fichier en entrée ligne par ligne et j'arrive à créer le fichier de sortie en apportant les modifications que je souhaite par rapport au fichier en entrée.
mais je suis confronté à un dernier soucis :
si je fais un simple FileWrite, il ajoute les lignes les unes à la suite des autres et le fichier n'aura pas le bon formatage
si je fais un FileWriteLine, il ajoute @CRLF à la fin de chaque ligne mais le fichier n'aura toujours pas le bon formatage
est-ce qu'il existe un moyen de savoir quel est le retour à la ligne (ou retour chariot) utilisé quant on lit une ligne dans un fichier ? pour que je puisse choisir entre @CR ou @LF à ajouter à la fin de ma ligne à écrire ?
-
Serge63
- Niveau 4

- Messages : 71
- Enregistré le : lun. 22 juin 2009 14:54
- Localisation : Clermont-ferrand
- Status : Hors ligne
Re: [R] Comment modifier les propriétés d'une imprimante...
Je laisse tomber cette solution pour l'instant ; je n'arrive pas à trouver comment exploiter la fin de chaque ligne pour savoir si c'est un @LF ou @CR.
En attendant, je me suis rabattu sur la méthode de gestion de fenêtre à coup de "send".
Sujet clos !
En attendant, je me suis rabattu sur la méthode de gestion de fenêtre à coup de "send".
Sujet clos !
- TommyDDR
- Modérateur

- Messages : 2130
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [R] Comment modifier les propriétés d'une imprimante...
si vous voulez être sur d'avoir soit @LF soit @CR soit @CRLF :
Code : Tout sélectionner
$MonString = StringReplace($MonString, @CRLF, @LF)
$MonString = StringReplace($MonString, @CR, @LF)
$MonString = StringReplace($MonString, @LF, CeQueVousVoulezICI)3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
-
Serge63
- Niveau 4

- Messages : 71
- Enregistré le : lun. 22 juin 2009 14:54
- Localisation : Clermont-ferrand
- Status : Hors ligne
Re: [R] Comment modifier les propriétés d'une imprimante...
Merci TommyDDR mais pour ça, je sais déjà faire.
Mon soucis, c'est au moment où on lit une ligne dans le fichier : le charactère de fin de ligne est ignoré par la commande "FileReadLine", donc je ne peux pas le traiter...
Tant pis...
Mon soucis, c'est au moment où on lit une ligne dans le fichier : le charactère de fin de ligne est ignoré par la commande "FileReadLine", donc je ne peux pas le traiter...
Tant pis...
- TommyDDR
- Modérateur

- Messages : 2130
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [R] Comment modifier les propriétés d'une imprimante...
Faites un FileRead(), cela vous lira tout le fichier, vous appliquez ensuite mon bout de code, vous faites un StringSplit() et vous avez un tableau avec toutes les lignes du fichier.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
-
Serge63
- Niveau 4

- Messages : 71
- Enregistré le : lun. 22 juin 2009 14:54
- Localisation : Clermont-ferrand
- Status : Hors ligne
Re: [R] Comment modifier les propriétés d'une imprimante...
J'ai déjà essayé mais le fichier a un formatage particulier et le traitement ne s'applique qu'au texte avant le premier saut de ligne...

- TommyDDR
- Modérateur

- Messages : 2130
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [R] Comment modifier les propriétés d'une imprimante...
Pouvez vous poster le fichier ?
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
-
Serge63
- Niveau 4

- Messages : 71
- Enregistré le : lun. 22 juin 2009 14:54
- Localisation : Clermont-ferrand
- Status : Hors ligne
Re: [R] Comment modifier les propriétés d'une imprimante...
pas ce soir car il est au boulot
mais si vous avez une imprimante, utilisez la commande suivante :
rundll32 printui.dll,PrintUIEntry /Ss /n "imprimante" /a "fichier.dat"
c'est grace à elle que j'ai généré mon fichier...
mais si vous avez une imprimante, utilisez la commande suivante :
rundll32 printui.dll,PrintUIEntry /Ss /n "imprimante" /a "fichier.dat"
c'est grace à elle que j'ai généré mon fichier...
- TommyDDR
- Modérateur

- Messages : 2130
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [R] Comment modifier les propriétés d'une imprimante...
Je post le mien, dites moi si le votre y ressemble (ouvrez le avec SciTE).
- Fichiers joints
-
- fichier.rar
- (1.73 Kio) Téléchargé 125 fois
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
-
Serge63
- Niveau 4

- Messages : 71
- Enregistré le : lun. 22 juin 2009 14:54
- Localisation : Clermont-ferrand
- Status : Hors ligne
Re: [R] Comment modifier les propriétés d'une imprimante...
oui c'est bien le meme format de fichier
- TommyDDR
- Modérateur

- Messages : 2130
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [R] Comment modifier les propriétés d'une imprimante...
Ok donc ca n'est pas du "texte basique" il faut donc ouvrir le fichier en binaire
ensuite vous lisez la totalité du fichier
puis vous convertissez en String
Vous coupez (mon code plus haut)
et vous voila avec votre tableau remplie
Attention : Si vous tentez de faire des MsgBox ou autre, le message s'arretera au 1er NULL qu'il rencontrera (NULL = fin de chaine de caractere)
Ce n'est pas pour autant que vos variables sont vides.
Idem si vous écrivez dans un fichier.
Si vous devez écrire dans un fichier :
Retransformez en binaire, ouvrez le fichier en binaire et écrivez dedent.
ensuite vous lisez la totalité du fichier
puis vous convertissez en String
Vous coupez (mon code plus haut)
et vous voila avec votre tableau remplie
Attention : Si vous tentez de faire des MsgBox ou autre, le message s'arretera au 1er NULL qu'il rencontrera (NULL = fin de chaine de caractere)
Ce n'est pas pour autant que vos variables sont vides.
Idem si vous écrivez dans un fichier.
Si vous devez écrire dans un fichier :
Retransformez en binaire, ouvrez le fichier en binaire et écrivez dedent.
► Afficher le texte
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
-
Serge63
- Niveau 4

- Messages : 71
- Enregistré le : lun. 22 juin 2009 14:54
- Localisation : Clermont-ferrand
- Status : Hors ligne
Re: [R] Comment modifier les propriétés d'une imprimante...
merci pour l'aide, j'essaierai ça quand je reprendrai le boulot...
