1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| 'Declaration:
Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Long
Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer) As Integer
'Function principale():
Public Function Impression()
'Recupere l'imprimante par defaut :
DefaultPrinterdeb = Left(GetIniString("windows", "device", ""), InStr(1, GetIniString("windows", "device", ""), ",") - 1)
'Changement d'imprimante :
SetDefaultPrinter "PDF Printer 4"
'Impression de l'etat actif avant changement d'imprimante origine
'Manque le code pour imprimer l'etat actif
'Remet l'imprimante par defaut
SetDefaultPrinter DefaultPrinterdeb
End Function
Function GetIniString(ByVal section As String, ByVal key As String, ByVal default As String) As String
Dim buffer As String
Dim n As Long
Dim status As Long
buffer = String(255, " ")
n = 255
status = GetProfileString(section, key, default, buffer, n)
GetIniString = Left(buffer, status)
End Function
Function SetDefaultPrinter(ByVal p As String) As Long
Dim PrinterPort As String
Dim PrinterDriver As String
PrinterPort = GetPrinterPort(p)
PrinterDriver = getPrinterDriver(p)
If PrinterDriver <> "" And PrinterPort <> "" Then
WriteIniString "windows", "device", p & ", " & PrinterDriver & ", " & PrinterPort
'J'ai mis le code suivant en commentaire car il ce bloque a cet endroit pourquoi ????
Module1.DefaultPrinter = p & ", " & PrinterDriver & ", " & PrinterPort
Else
Module1.DefaultPrinter = ""
End If
End Function
Function GetPrinterPort(ByVal PrinterName As String) As String
Dim buffer As String
buffer = GetIniString("devices", PrinterName, "")
If InStr(buffer, ",") <> 0 Then
GetPrinterPort = Right(buffer, Len(buffer) - InStr(buffer, ","))
End If
End Function
Function getPrinterDriver(ByVal printer As String)
Dim buffer As String
buffer = GetIniString("devices", printer, "")
If InStr(buffer, ",") <> 0 Then
getPrinterDriver = Left(buffer, InStr(buffer, ",") - 1)
End If
End Function
Sub WriteIniString(ByVal section As String, ByVal key As String, ByVal Value As String)
Dim status As Long
status = WriteProfileString(section, key, Value)
End Sub |
Partager