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) |