Installer une nouvelle imprimante

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 993 fois - Téléchargée 42 fois

Contenu du snippet

Installe une nouvelle imprimante au système

sPrinterName: Le nom de l'imprimante
sDriver: La chaine de caractère qui indique le driver
sPort: Le port de l'imprimante
sComment: Le commentaire associé à l'imprimante

Exemple:

dim variable as string
variable = InstallPrinter("Epson", "Epson Stylus COLOR 440", "LPT1:", ,"Mon imprimante")
MsgBox "Imprimante ajoutée: " & variable

Ti£oi$

Source / Exemple :


Private Type PRINTER_INFO_2
    pServerName As String
    pPrinterName As String
    pShareName As String
    pPortName As String
    pDriverName As String
    pComment As String
    pLocation As String
    pDevMode As Long
    pSepFile As String
    pPrintProcessor As String
    pDatatype As String
    pParameters As String
    pSecurityDescriptor As Long
    Attributes As Long
    Priority As Long
    DefaultPriority As Long
    StartTime As Long
    UntilTime As Long
    Status As Long
    cJobs As Long
    AveragePPM As Long
End Type

Private Declare Function AddPrinter Lib "winspool.drv" Alias "AddPrinterA" _
    (ByVal pName As String, ByVal Level As Long, pPrinter As Any) As Long
Private Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As _
    Long) As Long

Function InstallPrinter(ByVal sPrinterName As String, ByVal sDriver As String, _
    Optional ByVal sPort As String = "LPT1:", Optional sServer As String, _
    Optional sComment As String) As Boolean
    Dim hPrinter As Long
    Dim PI As PRINTER_INFO_2

    With PI
        .pPrinterName = sPrinterName
        .pDriverName = sDriver
        .pPortName = sPort
        .pServerName = sServer
        .pComment = sComment
        .pPrintProcessor = "WinPrint"
        .Priority = 1
        .DefaultPriority = 1
        .pDatatype = "RAW"
    End With
    hPrinter = AddPrinter(sServer, 2, PI)

    If hPrinter <> 0 Then
        ClosePrinter hPrinter
        InstallPrinter = True
    End If

End Function

A voir également

Ajouter un commentaire

Commentaires

Messages postés
521
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
11 septembre 2008
5
Pour les imprimantes local utiliser ce code tres bien, pour des imprimantes reseaux utiliser :

http://www.vbfrance.com/code.aspx?ID=20353

ca marche super bien
Messages postés
521
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
11 septembre 2008
5
pour que cela marche avec des imprimantes reseaux il faut definir un port sur le poste en local qui pointe directement sur l'imprimante reseau (et pas un partage)

pour avoir acces aux port locaux d'impresssion, il faut avoir une premiere imprimante d'installer sur le poste et
aller dans ces proprietes, puis sur l'onglet port et enfin sur le bouton ajouter un port (quand on le fait a la main) .

lien tres interressant pour automatiser cette creation de port sous VB et pour voir les différentes API de "winspool.drv":

http://vbnet.mvps.org/index.html?code/system/addports.htm
Messages postés
9
Date d'inscription
jeudi 2 octobre 2003
Statut
Membre
Dernière intervention
1 juillet 2004

Pas mal losque l'imprimante est locale ! Sinon, en réseau, ça ne fonctionne pas. Quelle serait donc la meilleure solution ?
Messages postés
9
Date d'inscription
jeudi 2 octobre 2003
Statut
Membre
Dernière intervention
1 juillet 2004

Pas mal losque l'imprimante est locale ! Sinon, en réseau, ça ne fonctionne pas. Quelle serait donc la meilleure solution ?
Messages postés
2
Date d'inscription
mercredi 15 janvier 2003
Statut
Membre
Dernière intervention
21 avril 2010

J'ai juste fait un COPIER/COLLER et ça marche pas !!!!!!!!!

hPrinter reste à 0

Besoin d'aide
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.