c # - Få det samlede antal sider fra Win32\_PrintJob

Indlæg af Hanne Mølgaard Plasc

Problem



Win32\_PrintJob WMI-klassen har mange egenskaber. (se: Win32\_PrintJob på MSDN) [3]


Jeg har en lille .NET-applikation, der polerer udskrivningsjobene og viser joboplysningerne 'information.


Egenskaben TotalPages giver antallet af sendte sider. Men det tal tager ikke hensyn til antallet af kopier, som brugeren har anmodet om. Så hvis en bruger ønsker at udskrive 5 kopier af et tosidet dokument, er værdien på TotalPages 2, ikke 10.


Hvordan kan jeg få antallet af kopier til et udskriftsjob, eller få det samlede antal sider, der skal udskrives (antal kopier gange antal sider i jobbet)?


Tak

Bedste reference


Jeg havde det samme problem med Win32\_PrintJob (TotalPages/PagesPrinted tager ikke højde for antallet af kopier) .Jeg løst det ved at kombinere WMI med Win api.


Antal kopier kan hentes fra DEVMODE struktur (dmCopies), som er en del af JOB\_INFO\_2 struktur. [4] [5]


Så du kalder GetJob med Level=2, og du får JOB\_INFO\_2 forekomst. Derfra er det s stykke kage, bare lidt af marshaling :).


Håber dette hjælper.


Skål,


Lukas