Bon voilà ma solution : il faut passer par un script Windows
Il faut juste s'assuré que les imprimantes reste les mêmes
sub Impression()
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery("Select * from Win32_Printer Where Name = '\\\\Imprimante2")
For Each objPrinter in colInstalledPrinters
objPrinter.SetDefaultPrinter()
Next
if (XDocument.UI.Confirm("Imprimer?", 4)=1) then
XDocument.PrintOut()
end if
Set colInstalledPrinters = objWMIService.ExecQuery("Select * from Win32_Printer Where Name = '\\\\imprimante1")
For Each objPrinter in colInstalledPrinters
objPrinter.SetDefaultPrinter()
Next
Set objWMIService = Nothing
Set colInstalledPrinters = Nothing
end sub
Je pourrais récupérer l'imprimante par défaut avant avec
Set colInstalledPrinters = objWMIService.ExecQuery("Select * from Win32_Printer Where Default = TRUE")
Mais il faut retraiter la chaine pour les caractères spéciaux style replace("\","\\")
mais je ne sais pas comment on fait avec ce genre de script donc j'ai laisser tomber!
Voili voilou!
Jean-Mi