[ delalt @ 27.12.2005. 18:24 ] @
| Postoji li kakva mogućnost da se odredi koji je printer spojen na paralelni port,
tip, proizvođač ili neki kod koji određuje baš taj konkretan model.
Znači, slično kao što se može pronaći serijski broj hard diska ili podaci iz biosa
matične ploče, ne podaci koji se mogu izvući iz drajvera za štampač.
Mislim, i sam Windows nekako detektuje novi uređaj, pa možda neka API funkcija.
Ovo mi treba konkretno za POS štampače, spojene na paralelni port, zbog
automatskog podešavanja parametara kad se prvi put priključi štampač ili se zamijeni.
Ne treba serijski broj, nego neki kod koji označava konkretan model
i koji se ne mijenja za taj model.
U stvari, zna li neko da li se to upšte može preko paralelnog porta? |
[ Rapaic Rajko @ 28.12.2005. 10:39 ] @
Pogledaj API funkciju EnumPrinters(). Ako imas Delphi, otvori Help->Windows SDK->Index, pa kucaj EnumPrinters. Ako se ne varam, sve API funkcije su u Delphi-ju vec wrap-ovane, tako da treba samo da napravis i popunis strukturu/record, a zatim pozoves funkciju...
Rajko
[ delalt @ 30.12.2005. 10:46 ] @
Hvala Rajko,
nisam jos stigao da pogledam tu funkciju, možda ona to i riješi.
Mislio sam da postoji neka jednostavna mogućnost da printeru spojenom na
LPT port pošaljem neki "upit", kao što se šalje skup kontrolnih znakova
za npr. otvaranje ladice, a da printer vrati onda taj karakterističan
kod i tako dobijem model printera.
Primjer: kad se odštampa self test kod printera Star SP200-2
(isključi se, drži dugme FEED i onda uključi), onda se u vrhu trakice dobije
*** SP2P F 1.6 *** (ovo meni treba ali ne na trakici već da dobijem sa LPT porta
nazad u program, pa da tako odaberem potrebne parametre za taj štampač),
pa onda slijedi DIP SW STATUS i ostalo...
Čini mi se da većina POS printera ima tu neku karakterističnu oznaku.
Našao sam da postoje neke jednostavne funkcije kojima se može dobiti kod
koji određuje da je printer ugašen, zauzet štampom...
Da li je moguće da se pokrene kodom taj self test?
[ Rapaic Rajko @ 30.12.2005. 13:19 ] @
delalt, ako imas manual tvog printera, dosta se toga moze izvesti slanjem kontrolnih sekvenci (pogledaj u Delphi help-u AssignPrn() i writeln() funkcije).
Medjutim, klasicnim putem NIKAKO ne mozes dobiti povratnu informaciju od printera; moras da se posluzis API-jem...
Rajko
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.