Suite à plusieurs demandes concernant l'impression avec AutoIt, voici d'autres possibilités qui en intéresserons surement plus d'un ...
- Bloc notes
 - Imprimer un document texte avec le Bloc-notes sur l'imprimante par défaut (silencieusement) :- Imprimer un document avec le Bloc-notes sur l'imprimante de votre choix (silencieusement) :Code : Tout sélectionner $PFile = "C:\test.txt" Run(@SystemDir & '\notepad.exe /p "' & $PFile & '"' ,'' ,@SW_HIDE)- Il est aussi possible de spécifier le nom du pilote ainsi que le port comme ceci :Code : Tout sélectionner $PFile = "C:\test.txt" $Printer = "HP Photosmart 3300 series" Run(@SystemDir & '\notepad.exe /pt "' & $PFile & '" "' & $Printer & '"' ,'' ,@SW_HIDE)Ce qui nous donne :Code : Tout sélectionner notepad.exe /pt TextFileName PrinterName [ DriverName [ PortName ] ]Code : Tout sélectionner $PFile = "C:\test.txt" $Printer = "HP LaserJet 1100 (MS)" $Driver = "HP LaserJet 1100 (MS)" $Port = "IP_192.168.1.10" ; ou $Port = "\\ServeurImpression\usbprinter" Run(@SystemDir & '\notepad.exe /pt "' & $PFile & '" "' & $Printer & '" "' & $Driver & '" "' & $Port & '"' ,'' ,@SW_HIDE)
- WordPad
 - Imprimer un document txt, rtf, doc, wri avec le Wordpad sur l'imprimante par défaut (silencieusement) :- Imprimer un document txt, rtf, doc, wri avec le Wordpad sur l'imprimante de votre choix (silencieusement) :Code : Tout sélectionner $PFile = "C:\test.txt" Run(@SystemDir & '\write.exe /p "' & $PFile & '"' ,'' ,@SW_HIDE)- Il est aussi possible de spécifier le nom du pilote ainsi que le port comme ceci :Code : Tout sélectionner $PFile = "C:\test.txt" $Printer = "HP Photosmart 3300 series" Run(@SystemDir & '\write.exe /pt "' & $PFile & '" "' & $Printer & '"' ,'' ,@SW_HIDE)Code : Tout sélectionner write.exe /pt TextFileName PrinterName [ DriverName [ PortName ] ]
- Word
 - Vous pouvez aussi utiliser Word, mais dans ce cas, vous devrez d'abord importer une macro (à faire une seule fois).
 Créez cette macro :et enregistrez là sous "PrintDefault" dans normal.dot.Code : Tout sélectionner Sub PrintDefault() ' ' PrintDefault Macro ' Print current document to Default Printer ' ActiveDocument.PrintOut ActiveDocument.Close Application.Quit End Sub
 - Vous pouvez aussi créer le fichier PrintDefault.bas et l'importer dans le normal.dot.Une fois la macro crée et importée, utilisez :► Afficher le texteEn adaptant la macro, vous pourrez spécifier l'imprimante de destination.Code : Tout sélectionner $PFile = "C:\test.doc" Run(@ProgramFilesDir & '\Microsoft Office\Office\winword.exe "' & $PFile & '" /mPrintDefault /q /n' ,'' ,@SW_HIDE)
 Je pense qu'il doit être possible avec AutoIt d'intégrer directement les macro sans passer par l'ouverture de Word, mais je vous laisse chercher cette partie. 
- Open Office (pensez à bien contrôler le chemin de l'application) :
 - Imprimer un document avec Open Office sur l'imprimante par défaut (silencieusement) :- Imprimer des documents .odt avec Open Office sur l'imprimante par défaut (silencieusement) :Code : Tout sélectionner $PFile = "C:\test.odt" Run(@ProgramFilesDir & '\OpenOffice.org 3\program\soffice.exe -p "' & $PFile & '"' ,'' ,@SW_HIDE)- Imprimer un/des documents avec Open Office sur l'imprimante de votre choix (silencieusement) :Code : Tout sélectionner $PFile = "C:\*.odt" Run(@ProgramFilesDir & '\OpenOffice.org 3\program\soffice.exe -p "' & $PFile & '"' ,'' ,@SW_HIDE)Code : Tout sélectionner $PFile = "C:\test.odt" $Printer = "HP Photosmart 3300 series" Run(@ProgramFilesDir & '\OpenOffice.org 3\program\soffice.exe -pt "' & $Printer & '" "' & $PFile & '"' ,'' ,@SW_HIDE)
- Adobe Accrobat (pensez à bien contrôler le chemin de l'application) :
 - Imprimer un document avec Adobe Accrobat sur l'imprimante par défaut avec boite de dialogue d'impression :- Imprimer un document avec Adobe Accrobat sur l'imprimante de votre choix silencieusement :Code : Tout sélectionner $PFile = "C:\test.pdf" Run(@ProgramFilesDir & '\Adobe\Reader 9.0\Reader\AcroRd32.exe /p "' & $PFile & '"' ,'' ,@SW_HIDE)- Il est aussi possible de spécifier le nom du pilote ainsi que le port comme ceci :Code : Tout sélectionner $PFile = "C:\test.pdf" $Printer = "HP Photosmart 3300 series" Run(@ProgramFilesDir & '\Adobe\Reader 9.0\Reader\AcroRd32.exe /N /T "' & $PFile & '" "' & $Printer & '"' ,'' ,@SW_HIDE)Code : Tout sélectionner AcroRd32.exe /N /T PdfFile PrinterName [ PrinterDriver [ PrinterPort ] ]
- Foxit Reader (pensez à bien contrôler le chemin de l'application) :
 - Imprimer un document avec Foxit Reader sur l'imprimante par défaut (silencieusement) :- Imprimer un document avec Foxit Reader sur l'imprimante de votre choix (silencieusement) :Code : Tout sélectionner $PFile = "C:\test.pdf" Run(@ProgramFilesDir & '\Foxit Software\Foxit Reader\Foxit Reader.exe /p "' & $PFile & '"' ,'' ,@SW_HIDE)- Selon le manuel de Foxit Reader il est conseillé pour la version 3.0 de placer les commutateurs /p et /t avant le nom du fichier.Code : Tout sélectionner $PFile = "C:\test.pdf" $Printer = "HP Photosmart 3300 series" Run(@ProgramFilesDir & '\Foxit Software\Foxit Reader\Foxit Reader.exe /t "' & $PFile & '" "' & $Printer & '"' ,'' ,@SW_HIDE)
 
 Si vous avez des images à imprimer alors voici quelques exemples :
- Paint
 - Imprimer une image avec paint sur l'imprimante par défaut (silencieusement) :- Imprimer une image avec paint sur l'imprimante de votre choix (silencieusement) :Code : Tout sélectionner $PFile = "C:\test.bmp" Run(@SystemDir & '\mspaint.exe /p "' & $PFile & '"' ,'' ,@SW_HIDE)- Il est aussi possible de spécifier le nom du pilote ainsi que le port comme ceci :Code : Tout sélectionner $PFile = "C:\test.bmp" $Printer = "HP Photosmart 3300 series" Run(@SystemDir '\mspaint.exe /pt "' & $PFile & '" "' & $Printer & '"' ,'' ,@SW_HIDE)Code : Tout sélectionner mspaint.exe /pt ImageFileName PrinterName [ DriverName [ PortName ] ]
- IrFanView
 - Imprimer n'importe quelle image avec IrfanView sur l'imprimante par défaut (silencieusement) :- Imprimer n'importe quelle image avec IrfanView sur l'imprimante de votre choix (silencieusement) :Code : Tout sélectionner $PFile = "C:\test.bmp" Run(@ProgramFilesDir & '\irfanview\i_view32.exe "' & $PFile & '" /print' ,'' ,@SW_HIDE)Code : Tout sélectionner $PFile = "C:\test.bmp" $Printer = "HP Photosmart 3300 series" Run(@ProgramFilesDir & '\irfanview\i_view32.exe "' & $PFile & '" /print="' & $Printer & '"' ,'' ,@SW_HIDE)
- Microsoft RAW Image
 Dans le cas ou vous auriez des images spécifiques à imprimer, vous pouvez aussi utiliser l'utilitaire de Microsoft : Microsoft RAW Image Thumbnailer and Viewer for Windows.
 La ligne de commande est identique à celle de IrFanView, donc il vous suffit d'adapter le chemin au code précédent. Code : Tout sélectionner RAWSupport.exe /print RawImageFile
- Microsoft XPS Viewer
 Pour ceux que cela peut intérésser, vous avez aussi Microsoft XPS Viewer :Code : Tout sélectionner XpsRchVw.exe XpsFile /p
Et bien tout simplement avec ceci :
Code : Tout sélectionner
#include <array.au3> ; Only for viewing the array.
$aPrinterList = _GetLocalPrinterList()
_ArrayDisplay($aPrinterList, '')
; Return local printer list.
; column 1 = Printer Name
; column 2 = Driver
; column 3 = Port
Func _GetLocalPrinterList()
    Local $PrinterList[1][3], $PrinterCount
    Local $objWMIService = ObjGet("winmgmts:\\" & @ComputerName & "\root\CIMV2")
    Local $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Printer")
    For $objItem In $colItems
        ReDim $PrinterList[$PrinterCount + 1][3]
        $PrinterList[$PrinterCount][0] = $objItem.DeviceID
        $PrinterList[$PrinterCount][1] = $objItem.DriverName
        $PrinterList[$PrinterCount][2] = $objItem.PortName
        $PrinterCount += 1
    Next
    Return $PrinterList
EndFunc   ;==>_GetLocalPrinterList
J'ai sans aucun doute oublié d'autres programmes commun (dont surement celui que vous voulez
 ), mais ce qui est écrit précédemment doit vous aider dans l'adaptation de votre/vos besoin(s).
 ), mais ce qui est écrit précédemment doit vous aider dans l'adaptation de votre/vos besoin(s).Donc bon code à tous et amusez vous bien.









 
 


