Ecouter le port d'une imprimante

Ecouter le port d'une imprimante - C++ - Programmation

Marsh Posté le 21-12-2004 à 15:33:07    

Bonjour,
 
Je vous explique mon problème.
Je souhaiterais écouter le port d'une imprimante et lorsqu'une impression est détectée vers ce port, il y est une fenêtre de mon application qui s'ouvre.
Le top serait de pouvoir également récupérer le nom du fichier qui a été envoyé vers cette imprimante.
 
Exemple :
Je suis sous word. Je lance une impression vers une imprimante (Physique ou PDFCreator). Là, un soft qui écoute le port détect cette demande d'impression et ouvre une fenêtre de mon choix
 
Si vous pouviez m'aider la dessus, je suis bloqué et c'est très très urgent. Merci
 
P.S : Si vous avez des exemple de code en c++, vb, delphi ou autre, je suis preneur. Je me débrouillerais après. Merci encore ;)

Reply

Marsh Posté le 21-12-2004 à 15:33:07   

Reply

Marsh Posté le 21-12-2004 à 15:42:04    

On n'écoute pas un port, mais on demande au pool d'être informé. Regarde voir FindFirstPrinterChangeNotification / FindNextPrinterChangeNotification.
Sous Win9x c.f WM_SPOOLERSTATUS.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 21-12-2004 à 17:45:03    

Pourrais-tu m'en dire un peu plus la dessus stp.
J'ai fait un tour sur la MSDN mais j'avoue que je n'ai pas tout pigé.  :??:   :sweat:  
 
Si tu pouvais mettre quelques lignes sur l'utilisation de cela, ca serait sympa
 
Merci  ;)

Reply

Marsh Posté le 22-12-2004 à 11:17:24    

Tiré de la MSDN a écrit :

HANDLE chgObject;
DWORD *pdwChange;
BOOL fcnreturn;
 
chgObject = FindFirstPrinterChangeNotification( hPrinter, PRINTER_CHANGE_JOB, 0, NULL);
WaitForSingleObject(chgObject, INFINTE);
fcnreturn = FindNextPrinterChangeNotification(chgObject, pdwChange, NULL, NULL);
if (fcnreturn) {
     // check value of *pdwChange and deal with the indicated change




hPrinter c'est le handle de l'imprimante qui t'intéresse (voir OpenPrinter, ou PrintDlg...).


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Sujets relatifs:

Leave a Replay

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