HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

A GetPrinter függvény és a nyolc struktúrája


Példaprogram letöltése

3846 bájt

A nyomtatókról számos adatot lekérdezhetünk. Ebben a lekérdezésben segítségünkre lehet a GetPrinter, API függvény is. A GetPrinter nyolcfajta információ lekérdezést tesz lehetővé, nyolc különböző felépítésű struktúrán keresztül. Ebben a cikkben megismerkedünk a GetPrinter API függvény, valamint struktúráinak használatával.

GetPrinter
function GetPrinter(
hPrinter: THandle;
Level: DWORD;
pPrinter: Pointer;
cbBuf: DWORD;
pcbNeeded: PDWORD
): BOOL;
A függvény segítségével egy megadott nyomtatóról információkat kérdezhetünk le.
Paraméterek
hPrinter: THandle
A nyomtató azonosítója.
Level: DWORD
A lekérdezendő adatstruktúra típusa. Windows 95/98/ME esetén a megadható értékek: 1,2,5. NT alapú rendszerek esetében: 1,2,3,4,5,7,8,9.
pPrinter: Pointer
Itt egy struktúrát kell megadnunk, amelybe a lekérdezett információk kerülnek. A struktúrának elég nagynak kell lennie ahhoz, hogy az adatok beleférjenek. Ha a mérete kisebb a szükségesnél, az adatok nem kerülnek bele, a pcbNeeded paraméter pedig a szükséges méretet adja vissza. Ha például Nil értéket adunk meg, akkor a függvényt felhasználhatjuk arra, hogy a szükséges struktúraméretet meghatározzuk. Ilyenkor a függvény visszatérési értéke hamis lesz, de a pcbNeeded-ben megkapjuk a szükséges méretet.
cbBuf: DWORD
Az nPrinter struktúra mérete, bájtokban.
pcbNeeded: PDWORD
Itt egy változót kell megadnunk. A lekérdezett struktúra mérete a megadott változóba kerül. Ennek a méretnek nagyobbnak vagy egyenlőnek kell lennie a cbBuf-nál, vagy a függvény visszatérési értéke hamis lesz.
Visszatérési érték
Igaz, ha a struktúra meghatározása sikeres volt, ellenkező esetben hamis.
A GetPrinter függvény segítségével olyan adatokat kérdezhetünk le, amelyet a Level paraméterben kiválasztottunk. A lekérdezésben nyolcfajta struktúra közül választhatunk. A WinSpool unitban megtalálható az első 5 struktúra implementációja, de a 7-8-9 hiányzik, ezek deklarálásáról nekünk kell gondoskodnunk.
A struktúrák a következők.
PRINTER_INFO_1
Általános információkat kérdezhetünk le vele.
  • Flags: DWORD;
Információt szolgáltat a nyomtatóról. Az itt használható konstansok a WinSpool unitban találhatók, PRINTER_ENUM_* néven.
  • pDescription: PAnsiChar;
A nyomtató leírását tartalmazza.
  • pName: PAnsiChar;
A nyomtató neve.
  • pComment: PAnsiChar;
Rövid leírás a nyomtatóról.
PRINTER_INFO_2
Részletes információk lekérdezésére szolgál.
  • pServerName: PAnsiChar;
A nyomtatót vezérlő szerver neve.
  • pPrinterName: PAnsiChar;
A nyomtató neve.
  • pShareName: PAnsiChar;
Az a név, amelyen a nyomtató meg van osztva.
  • pPortName: PAnsiChar;
Port neve, amelyhez a nyomtató csatlakozik.
  • pDriverName: PAnsiChar;
Meghajtó neve.
  • pComment: PAnsiChar;
Rövid leírás a nyomtatóról.
  • pLocation: PAnsiChar;
A nyomtató fizikai helye.
  • pDevMode: PDeviceModeA;
Egy beágyazott DEVMODE struktúra, amely további nyomtató adatokat szolgáltat, például a papír- és színkezelésről.
  • pSepFile: PAnsiChar;
Annak a fájlnak a neve, amelyet a nyomtatóra küldött dokumentumok elválasztására használunk.
  • pPrintProcessor: PAnsiChar;
A nyomtató processzor neve.
  • pDatatype: PAnsiChar;
A nyomtatandó munkák adattípusa.
  • pParameters: PAnsiChar;
A nyomtató processzor paraméterei.
  • pSecurityDescriptor: PSecurityDescriptor;
Egy beágyazott SECURITY_DESCRIPTOR struktúra.
  • Attributes: DWORD;
A nyomtató tulajdonságait adja meg. Értéke több konstans kombinációja lehet. A konstansok a WinSpool unitban találhatók, PRINTER_ATTRIBUTE_* néven.
  • Priority: DWORD;
Az a prioritás érték, amellyel a nyomtatásvezérlő ellátja a nyomtatandó munkákat.
  • DefaultPriority: DWORD;
A nyomtatandó munkákhoz, alapértelmezésként rendelt prioritás.
  • StartTime: DWORD;
Meghatározza a legkorábbi időt, amikor a nyomtató nyomtatni fog. Az időt percekben adja meg, a greenwich-i 12.00-tól számítva.
  • UntilTime: DWORD;
Meghatározza a legkésőbbi időpontot, amikor a nyomtató nyomtatni fog. Az időt percekben adja meg, a greenwich-i 12.00-tól számítva.
  • Status: DWORD;
A nyomtató állapotát adja meg. Itt több konstans kombinációját is használhatjuk egyszerre. Ezek a konstansok a WinSpool unitban találhatóak, PRINTER_STATUS_* néven.
  • cJobs: DWORD;
A nyomtatásra váró dokumentumok száma.
  • AveragePPM: DWORD;
A kinyomtatott munkák átlagos lap/perc adata.
PRINTER_INFO_3
Biztonsági információk lekérdezésére szolgál.
  • pSecurityDescriptor: PSecurityDescriptor;
Beágyazott SECURITY_DESCRIPTOR struktúra, amely a nyomtató biztonsági információit tartalmazza.
PRINTER_INFO_4
Minimális mennyiségű információ lekérdezésére alkalmas.
  • pPrinterName: PAnsiChar;
A nyomtató neve.
  • pServerName: PAnsiChar;
A nyomtatót tartalmazó szerver neve.
  • Attributes: DWORD;
Értéke a következő lehet: PRINTER_ATTRIBUTE_LOCAL (helyi nyomtató), PRINTER_ATTRIBUTE_NETWORK (hálózati nyomtató).
PRINTER_INFO_5
Általános adatok és időtúllépési beállítások lekérdezésére szolgál.
  • pPrinterName: PAnsiChar;
A nyomtató neve.
  • pPortName: PAnsiChar;
Annak a portnak a neve, amelyhez a nyomtató csatlakoztatva van. Ha egy nyomtató egyszerre több porthoz csatlakozik, akkor a portok a következő módon kerülnek felsorolásra: pl. "LPT1:,LPT2:,LPT3:".
  • Attributes: DWORD;
A nyomtató tulajdonságai. Az érték több konstans kombinációja is lehet. A konstansok a WinSpool unitban találhatóak, PRINTER_ATTRIBUTE_* néven.
  • DeviceNotSelectedTimeout: DWORD;
Csak Win95/98/ME esetén van értelmezve. Meghatározza azt a maximális időt, ezredmásodpercekben, amely az eszköz kiválasztási próbálkozások között eltelhet.
  • TransmissionRetryTimeout: DWORD;
Csak Win95/98/ME esetén van értelmezve. Meghatározza azt a maximális időt, ezredmásodpercekben, amely az adatátvitel próbálkozások között eltelhet.
PRINTER_INFO_7
Megnézhetjük vele, hogy a nyomtató szerepel-e a Directory Service-ben.
  • pszObjectGUID: PAnsiChar;
A nyomtató GUID azonosítója.
  • dwAction: DWORD;
Megadja, hogy a nyomtató szerepel-e a DS-ben. A következő értékeket tartalmazhatja: DSPRINT_PUBLISH, DSPRINT_UNPUBLISH, DSPRINT_UPDATE, DSPRINT_PENDING.
PRINTER_INFO_8
Globális nyomtató beállítások lekérdezésére használható.
  • pDevMode: PDeviceModeA;
Egy beágyazott DEVMODE struktúra, amely további nyomtató adatokat szolgáltat, például a papír- és színkezelésről.
PRINTER_INFO_9
Felhasználó specifikus beállítások lekérdezésére használható.
  • pDevMode: PDeviceModeA;
Egy beágyazott DEVMODE struktúra, amely további nyomtató adatokat szolgáltat, például a papír- és színkezelésről.

Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 127. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |