OBTENIR LE NOM DE L'IMPRIMANTE PAR DÉFAUT
Voici un exemple de code qui permet d'obtenir le nom de l'imprimante par défaut. Le cas échéant, il est facile de récupérer aussi le port associé.
Déclarations : |
Private 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 Long) As Long
Dim Text As String * 128, PrinterDefName As String, rc As Long
Code : |
rc =
GetProfileString("Windows", "Device",
PtrCtoVbString(PInf1(1).pName), Text, 128)
If rc <= 0 Then Exit Sub
PrinterDefName = RemNull(Text)
' En fait,
ici, PrinterDefName contient le nom de l'imprimante, le nom du
gestionnaire des impressions (winspool), et le port associé
(LPT1:). Ces 3 infos sont séparées par des virgules. Seule la
première info nous intéresse ici.
I = InStr(1, PrinterDefName, ",")
If I > 0 Then PrinterDefName = Left(PrinterDefName, I - 1)
' Procédure pour
enlever les caractères nulls
Private Function RemNull(Text As String) As String
Dim Npos As Integer
Npos = InStr(1, Text, Chr(0))
If Npos > 0 Then
RemNull = Left(Text, Npos -
1)
Else
RemNull = Text
End If
End Function