Foxpro : Le développement durable
Je ne résiste pas au plaisir d'écrire un petit article technique sans prétention. Foxpro étant un environnement très complet, nous n'utilisons que très peu les API ou autres composants externes. Aussi, je suis assez fier du bout de code suivant.
Nous gérons pas mal de document par automation (essentiellement word et excel), et des pdf. Le problème posé est d'imprimer sans visualiser la fenêtre du document. Voila la solution mise en oeuvre:
M.oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\.rootcimv2")
*-- Collection des imprimantes connectées sur le poste *-- Détermination de l'imprimante par défaut *-- Choix de l'imprimante *-- Fixer l'imprimante à utiliser
M.oPrinters = M.oWMI.ExecQuery("Select * from Win32_Printer")
For Each M.oPrinter In M.oPrinters
If oPrinter.Default
M.oPrinterDefault = M.oPrinter
exit
endif
Next
M.cImpChoix = GETPRINTER()
For Each M.oPrinter in M.oPrinters
if M.oPrinter.name= M.cImpCHoix
M.oPrinter.SetDefaultPrinter()
exit
Endif
Next
*
*-- Le code réalisant l'impression est là
*--
*-- restauration de l'imprimante par default initiale
M.oPrinterDefault.SetDefaultPrinter()