Changer l'imprimante par défaut sous Infopath en Vbscript [Résolu]

Signaler
Messages postés
2
Date d'inscription
mardi 19 novembre 2002
Statut
Membre
Dernière intervention
28 juillet 2007
-
Messages postés
2
Date d'inscription
mardi 19 novembre 2002
Statut
Membre
Dernière intervention
28 juillet 2007
-
Bonjour,

J'utilise Infopath pour une application qui génère des impressions.

Pour cette applcation, les impressions doivent se faire sur un papier Entête.
Hors je ne trouve pas comment :
   Soit modifier l'imprimante par défaut via le code Vbscript
   Soit ouvrir la boite de dialog de gestion d'imprimante via le code Vbscript

Bien tout ça avec du Vbscript sous info path

Pour le moment, je peux juste lancer les impressions sur l'imprimante par défaut via
XDocument.PrintOut()

Merci

3 réponses

Messages postés
2
Date d'inscription
mardi 19 novembre 2002
Statut
Membre
Dernière intervention
28 juillet 2007

Bonjour,

Je vois que j'ai du soutiens :)
bon j'ai trouvé ma réponse et celle ne convient pas trop, ça m'oblige à passer par des objet Word, du coup je me suis servie de script windows qu'infopath autorise.
voici  un exemple pour récup l'imprimante par défaut
Dim net
Set net = CreateObject("WScript.Network")
net.SetDefaultPrinter " \\ServerName\PrinterName "

voilà de quoi lister les imprimantes:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")

Set colInstalledPrinters = objWMIService.ExecQuery ("Select * from Win32_Printer")

For Each objPrinter in colInstalledPrinters
Wscript.Echo "Name: " & objPrinter.Name
Wscript.Echo "Location: " & objPrinter.Location
Wscript.Echo "Default: " & objPrinter.Default
Next

Ensuite pour régler mon problème, j'ai manipulé ces commandes!

A vous de jouer :)
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 Bonjour

Dans l'exemple ci-dessous, j'imprime un .txt sur les imprimantes réseau.

Call fnImprimerDoc("d:\test.txt")

Function fnImprimerDoc(MyDoc)
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")

Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer")

If colInstalledPrinters.Count <> 0 Then
   For Each objPrinter in colInstalledPrinters
       MsgBox objPrinter.DeviceID
       If Left(objPrinter.DeviceID,9) <> "Microsoft" Then
          Wscript.Echo "Name: " & objPrinter.Name &vbCr&_
                       "Default: " & objPrinter.Default &vbCr&_
                       "Port: " & objPrinter.PortName &vbCr&_
                       "Imprimante Reseau: " & objPrinter.Network
                      
          Dim objFso, objWordApp, objWordDoc
          Set objFso = CreateObject("Scripting.FileSystemObject")
          If objFso.FileExists(MyDoc) Then
             Set objWordApp = CreateObject("Word.Application")
             Set objWordDoc = objWordApp.documents.open(MyDoc)
             objWordApp.DisplayAlerts = wdAlertsNone
             objWordApp.ActivePrinter=objPrinter.Name
             objWordDoc.PrintOut 0
             objWordDoc.Close
             objWordApp.Quit
             Set objWordApp = Nothing
             Set objWordDoc = Nothing
          End if
       Set objFso = Nothing
       End if
   Next
End If
Set objWMIService = Nothing
Set colInstalledPrinters = Nothing
End Function

jean-marc
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 Bonjour à tous

Je m'aperçois que " [auteurdetail.aspx?ID=18055 bowj]" contribue fortement, mais à dose homéopatique, à l'essor de VBF (CS) !!!

<li>Arrivée sur CodeS-SourceS le :
19/11/2002 15:42:36
</li><li>Dernier signe de vie :
26/06/2007 17:27:05
</li>mais


Messages dans le forum sur tout CodeS-SourceS : 1
message(s)


Il ne faut pas le prendre mal ....
Je sors, du Forum, direction "mon" petit port de la salis et ses <strike>dorades</strike> bugues.
Amicalement,
jean-marc