S'identifier

API
Documentation
Ressources
Trucs & astuces
Libre
Gabarits
Services

Membres
Participer
Visiter

Contact

Meilleure résolution
mode 800 x 600

Optimisé pour
IE v.5
Netscape v.6
mais surtout pour
Mozilla v.1
minimum

 


Membre de Click-FR®, Réseau francophone Paie-Par-Click

SetJob

Date de parution : 10/06/2002 - Cette fiche API a été lue 1764 fois

Description

SetJob pause, résume, détruit ou redémarre un travail à imprimer pour une imprimante spécifiée. Si la fonction réussit, la valeur de retour est à Vrai sinon à Faux (utiliser GetLastError pour un message d’erreur étendu).

Syntaxe

AppelDLL32("winspool.drv", "SetJobA", hPrinter, dwJob, dwLevel, &lpbJob, dwCommand)

hPrinter

Identifiant de l’imprimante.

dwJob

Identifiant du travail d’impression.

dwLevel

Précise le niveau de la structure qui pointe sur lpbJob. La valeur peut être à 1 ou à 2.

lpbJob

Pointe sur un tableau qui contient l’une ou l’autre des structures JOB_INFO_n.

dwCommand

Précise la commande d’opération à envoyer. Ce paramètre peut être l’un ou plusieurs de ces sémaphores :

Valeur

Signification

JOB_CONTROL_CANCEL = 3

Effacement.

JOB_CONTROL_PAUSE = 1

Suspendre.

JOB_CONTROL_RESTART = 4

Redémarrage (possible seulement si le travail a été déjà imprimé).

JOB_CONTROL_RESUME = 2

Reprendre un travail suspendu.

Compatibilité

  • Windows 95 : supporté.
  • Windows 98 : supporté.
  • Windows NT : réclame Windows NT 3.1 ou plus.
  • Windows 2000 : supporté.

Remarque

Aucune

Exemple 1

// Effacer un travail d'impression stocké
// dans la file d'attente d'une imprimante
lpPrinter est une chaîne Asciiz sur 255
hPrinter est un entier long
retVal est un entier long
i est un entier
pcbNeeded, pcReturned sont des entiers longs
doc est une chaîne Asciiz sur 255

ji1 est un tableau de 1 JOB_INFO_1
// Placez ici le nom exact de l'imprimante
// Voir l'exemple de la fonction EnumPrinters
// pour cette récupération
lpPrinter = "HP DeskJet 600 Printer"

retVal = AppelDLL32("winspool.drv", "OpenPrinterA", ...
                          &lpPrinter, &hPrinter, Null)
Si retVal Alors
 AppelDLL32("winspool.drv", "EnumJobsA", ...
     hPrinter, 0, 100, 1, &ji1[1], 1024, &pcbNeeded, &pcReturned)
 // Du code qui vous est offert par Beaussier en ligne !
 Si pcReturned  0 Alors
  Pour i = 1 à pcReturned
   AppelDLL32("winspool.drv", "GetJobA", ...
                             hPrinter, i, 1, &ji1[1], 1024, &pcbNeeded)
   AppelDLL32("kernel32", "RtlMoveMemory", &doc, ji1[1]:pDocument, 255)
   Si OuiNon(doc, "Effacer ce travail ?") Alors
    // Effacement avec le sémaphore JOB_CONTROL_CANCEL = 3
    AppelDLL32("winspool.drv", "SetJobA", hPrinter, i, 1, &ji1[1], 3)
   Fin // du OuiNon
  Fin // du Pour
 Sinon
  Info("Aucun travail en file d'attente")
 Fin
 AppelDLL32("winspool.drv", "ClosePrinter", hPrinter)
Sinon
 Erreur("Impossible d'ouvrir " + lpPrinter)
Fin


Nombre de commentaire sur SetJob : 1

Rappel : Le code fourni est compatible Windev v.4 et 5. Pour les versions supérieures, vous devez modifier le type des variables numériques. Par exemple : entier long devient entier.
Bien sûr, les marques citées sont déposées par leurs sociétés respectives. Ces pages sont à la disposition de tous, le code fourni est libre mais toute responsabilité est déclinée en cas de mauvais usage ou de dysfonctionnement.
© 2000-2005 Beaussier & Le Centre W..D..