Bonjour
Dans le cadre d'une application, je dois prendre le controle d'une imprimante.
L'idee est d'imprimer un document et de ne pas lancer un autre si un document est deja present ou si une erreur est apparue(plus de papier, tete ouverte...)
Je me suis donc interessé a la structure PRINTER_INFO_2 qui devrait me rendre le status de mon imprimante mais sans succes.
Je me suis retourner donc vers tester si un job est present et le reste pendant un temps superieur a 2s (c'est une impression rapide ), c'est que j'ai une erreur.
J'arrive à un resultat.
Mon souci est qu'après avoir informé l'utilisateur de l'erreur je dois bien entendu supprimer ce job.
La fonction set job vient donc a mon aide
SetJob(hPrinter,pJobs[0].JobId,2,(LPBYTE)pJobs,JOB_CONTROL_DELETE);
Mon premier souci est que cette fonction me renvoie toujours 0 bien qu'elle detruit effectivement le document ( la MSDN dit un booleen a 1).
Le deuxieme est qu'elle le detruit avec un temps important (plusieurs seconde)
et que pendant ce temps je ne peux lancer d'autre impression.Peut t on accelerer ce temps
Y a t il un moyen de recuperer dans la structure PRINTER_INFO_2 le status de l'imprimante (le status apparait dans windows) par la fonction getprinter, m'evitant tout cette usine à gaz avec les jobs
Nota : j'ai pris l'exemple de microsoft avec l'appel 2 fois de la fonction, la premiere pour recuperer la taille et la deuxieme pour recuperer les info.
Partager