Installer une imprimante IPP en utilisant l'API Windows

Installer une imprimante IPP en utilisant l'API Windows - API Win32 - Programmation

Marsh Posté le 02-04-2008 à 09:16:58    

Bonjour à tous,
 
Je dois développer un logiciel qui automatise l'installation d'une imprimante IPP en C++.
 
Pour ça j'utilise l'API de windows et notamment la fonction AddPrinter.
 
Le problème est qu'avant d'appeler AddPrinter, je dois installer le port sur laquelle l'imprimante va s'ajouter (je dis peut être une connerie, mais il me semble que c'est comme ça que ça fonctionne).
 
Si je fais une première installation "à la main" de l'imprimante, le port est ajouté et si je supprime ensuite justel'imprimante, le port reste installé, je peux donc appeler AddPrinter directement. (là ça marche, il suffit juste que je passe en paramètre de addPrinter le nom du port)
 
Je chercher depuis quelques jours comment installer le port d'impression, sachant que je dois fournir un login et un mot de passe pour pouvoir me connecter à l'url du serveur IPP. Dans la base de registre, il y'a des trucs stockés (dont le login et le mots de passe cryptés) mais j'ignore par quelle méthode je peux les ajouter.
 
Est ce que quelqu'un sait comment installer une imprimante IPP ou du moins un port d'impression avec les API win32  ?
 
Merci !
 
Tshupi

Reply

Marsh Posté le 02-04-2008 à 09:16:58   

Reply

Marsh Posté le 21-04-2008 à 14:06:05    

Je vais me répondre à moi puisque j'ai trouvé une solution finalement, ça pourra toujours servir si quelqu'un à un truc à faire qui ressemble à ça... (si si, c'est possible...)
 
Bref, pour installer une imprimante sous windows, il y'a la commande RUNDLL32.exe PRINTUI.DLL,PrintUIEntry qui marche assez bien, et qui est pas mal documenté, sauf pour le cas d'une imprimante IPP ou là le /x n'est pas documenté et du coup, pour le trouver, faut l'inventer :-), enfin bon, pour installer la nouvelle imprimante, il suffit d'appeler la commande :
 
RUNDLL32.exe PRINTUI.DLL,PrintUIEntry /y /b "Nom Imprimante local" /x /n "Routage" /if /f "C:\WINDOWS\inf\ntprint.inf" /r "https://urldelimprimante" /m "Driver"
 
Cette commande ouvre ensuite une fenêtre demandant le login et le mot de passe de connexion, il suffit alors de programmer une petite appli qui récupère le handle de la fenêtre et qui remplisse les cases avec les valeurs qui vont bien...
 
Voilà, c'est pas très compliqué, mais il fallait le trouver...


Message édité par tshupaka le 21-04-2008 à 14:07:09
Reply

Marsh Posté le 23-04-2008 à 16:44:05    

drapal

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed