Interruption impression

Signaler
Messages postés
31
Date d'inscription
mardi 7 janvier 2003
Statut
Membre
Dernière intervention
16 juillet 2004
-
Messages postés
87
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
4 mars 2010
-
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

Messages postés
518
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 novembre 2007
3
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
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Fonctionne cela sur XP ???
BruNews, ciao...
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
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...
Messages postés
518
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 novembre 2007
3
Oui, c'est une interruption qui gère ça alors ca marche normalement, enfin, je pense.
++.
Bouba
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
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...
Messages postés
87
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
4 mars 2010

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