Interruption impression

none77 Messages postés 31 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 16 juillet 2004 - 28 mai 2003 à 16:10
cs_bilal Messages postés 87 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 4 mars 2010 - 19 janv. 2005 à 22:19
bonjour,

j'aimerais savoir si il existe une interruption ou un evênement qui nous permet de savoir qu'une impression a été lancée ?

merci beaucoup,
None.

6 réponses

cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 3
28 mai 2003 à 19:08
Oui, il est possible de tester l'état de l'inrimante par l'intermédiaire de l'interruption 17H.

union Regs r;
r.h.ah = 0x02;
r.x.dx = 0x00;

int86(0x17, &r, &r);

if(r.h.ah & 0x80)
printf("L'imprimante est occupée ou attent une impression");

Voila, A+.
Bouba
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
28 mai 2003 à 20:36
Fonctionne cela sur XP ???
BruNews, ciao...
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
28 mai 2003 à 23:11
Reponse win32:
sur NT ou sup il est aise de savoir le nbr de jobs d'impression en cours, si est Win95/98 un peu plus long.
Exemple NT ou sup, je retourne nbr impressions en queue sur spooler ou -1 si erreur.

int NbrImprimEnCours() // -1 si erreur
{
char szname[80];
HANDLE hprnt, hheap;
BYTE *pmem;
DWORD len = 80;
int val = -1;
if(!GetDefaultPrinter(szname, &len)) return -1;
if(!OpenPrinter(szname, &hprnt, 0)) return -1;
len = 0;
GetPrinter(hprnt, 2, 0, 0, &len);
if(len) {
hheap = GetProcessHeap();
pmem = (BYTE*) HeapAlloc(hheap, 0, len);
if(pmem) {
if(GetPrinter(hprnt, 2, pmem, len, &len))
val = (int) ((PRINTER_INFO_2*)pmem)->cJobs;
HeapFree(hheap, 0, pmem);
}
}
ClosePrinter(hprnt);
return val;
}

BruNews, ciao...
0
cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 3
28 mai 2003 à 23:23
Oui, c'est une interruption qui gère ça alors ca marche normalement, enfin, je pense.
++.
Bouba
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
28 mai 2003 à 23:32
Ben le mien il aime pas qu'on touche aux interruptions. De toute maniere il intercepte tous les appels directs aux interruptions vu qu'il les devie au lancement.
Je lui ai mis une methode par API, je pense que c'est toujours preferable.
BruNews, ciao...
0
cs_bilal Messages postés 87 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 4 mars 2010
19 janv. 2005 à 22:19
Bonjour
BruNews

ta focntion qui gere le nfr d'impression , peut t'elle fournir aussi la provenance et le nbr d'impression par provenance ?

ex:

IP -- Titre_Doc -- Nbr Impression
...
...

merci d'avance
0
Rejoignez-nous