PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → API & Windev
API & Windev
Started by amk.sitech, Apr., 20 2006 8:52 PM - 2 replies
Posted on April, 20 2006 - 8:52 PM
Bonsoir,

Je cherche à récupérer les informations relatives aux impressions (Dimensions de la page imprimée, Nombre de copie, ...).

J'ai récupérer diverses propositions pour la liste des documents à imprimer, les détails (Nom document, Utilisateur, ...) sauf les détails sur le document lui même. Mes difficultés est convertir correctement le bloc d'information "DEVMODE" qui d'après diverses sources sur internet contient ces informations.

Mes remerciements d'avance


PROCEDURE DocImprimante(Liste2)




cbBuf est un entier
pbNeeded est un entier
pcReturned est un entier

p2 est composé de
pServerName est un entier
pPrinterName est un entier
pShareName est un entier
pPortName est un entier
pDriverName est un entier
pCommen est un entier
pLocation est un entier
pDevMode est un entier
pSepFile est un entier
pPrintProcessor est un entier
pDatatype est un entier
pParameters est un entier
pSecurityDescriptor est un entier
Attributes est un entier
Priority est un entier
DefaultPriority est un entier
StartTime est un entier
UntilTime est un entier
Stat est un entier
cJobs est un entier
AveragePPM est un entier
FIN

ind est un entier
serveur est une chaîne ASCIIZ de 128
nomimp est une chaîne ASCIIZ de 128
port est une chaîne ASCIIZ de 128
pWidth est un entier
pSize est un entier
//

ch est une chaîne

ListeSupprimeTout("LISTE2")

AppelDLL32("winspool.drv","EnumPrintersA",0x6,Null,2,Null,cbBuf,&pbNeeded,&pcReturned)
hmem est un entier = AppelDLL32("kernel32","GlobalAlloc",0x40,pbNeeded)
cbBuf = pbNeeded
SI AppelDLL32("winspool.drv","EnumPrintersA",0x6,Null,2,hmem,cbBuf,&pbNeeded,&pcReturned) ALORS

adr est un entier = hmem

POUR ind = 1 A pcReturned

AppelDLL32("kernel32","RtlMoveMemory",&p2,adr,84)

AppelDLL32("kernel32","RtlZeroMemory",&serveur,128)
// AppelDLL32("kernel32","RtlMoveMemory",&serveur,p2.pServerName ,128)
//info(p2.pServerName)
AppelDLL32("kernel32","RtlZeroMemory",&nomimp,128)
AppelDLL32("kernel32","RtlMoveMemory",&nomimp,p2.pPrinterName ,128)

AppelDLL32("kernel32","RtlZeroMemory",&port,128)
AppelDLL32("kernel32","RtlMoveMemory",&port,p2.pPortName ,128)

AppelDLL32("kernel32","RtlZeroMemory",&port,128)
AppelDLL32("kernel32","RtlMoveMemory",&port,p2.pPortName ,128)
Info(p2.pDevMode)

SI Taille(SansEspace(nomimp))>0 ALORS

SI ETBinaire(p2.Attributes,4) ALORS
ch=" Défaut "
SINON
ch=""
FIN

ListeAjoute("LISTE2",port+"\"+nomimp+"\"+ch)
FIN

adr+„

FIN

FIN

AppelDLL32("kernel32","GlobalFree",hmem)
Posted on April, 21 2006 - 12:22 AM
// Affichage des paramètres de l'imprimante
Trace("------------------------------------------------------------------")
Trace("Orientation = "+iParamètre(iOrientation))
Trace("FormatPapier = "+iParamètre(iFormatPapier))
Trace("HauteurPage = "+iParamètre(iHauteurPapier))
Trace("LargeurPage = "+iParamètre(iLargeurPapier))
Trace("NbCopie = "+iParamètre(iNbCopie))
Trace("AlimentationPapier = "+iParamètre(iAlimentationPapier))
Trace("ResolutionY = "+iParamètre(iRésolutionY))
Trace("Couleur = "+iParamètre(iCouleur))
Trace(Assemble = "+iParamètre(iAssemblé))
ParamètresSpécifiques est un Buffer = iParamètre(iParamètresSpécifiques)
Trace(taille Spécifique = "+Taille(ParamètresSpécifiques))
Trace("Spécifique = "+ParamètresSpécifiques)
Trace("------------------------------------------------------------------")

Je n'ai peut être pas compris ce que tu demandais, mais tu peux m'envoyer un Email
cm16.top@wanadoo.fr j'ai peut etre quelque chose pour toi
Posted on April, 21 2006 - 1:34 AM
Ce ne sont pas les paramètres de l'imprimante que je cherche,mais les détails d'un fichier imprimé à partir du spooler.