Dalej Wyżej Poprzednio Spis treści indeks
Dalej: Poczta elektroniczna Wyżej: Drukowanie plików Poprzednio: lpr

predir, onpredir, dopredir

    

Aby dokonać przechwycenia danych wysyłanych do drukarki przez programy pracujące pod kontrolą systemu operacyjnego MS DOS musi być zastosowany program rezydentny predir. Jest on stosunkowo mały (zajmuje ok 7 kB) i aby móc zrealizować wszystkie swoje funkcje współpracuje z dwoma programami onpredir i dopredir. Nie wykonują one żadnych istotnych czynności poza interpretacją poleceń użytkownika i przekazywaniem ich programowi predir.

Użycie:
predir [config] [debug] [help] [hotkey opt] [memsize xx] [noselect opt]
[oneof opt] [onexit opt] [timeout opt] [printer port] [prog program]
[report] [spool dest] [swap dest] [unload]

predir -?|-version

Znaczenie parametrów jest następujące:

config
ładuje standardową konfiguracje zapisaną w zbiorze konfiguracyjnym,
debug
wyświetla dodatkowe informacje na temat parametrów pracy programu,
help
wyświetla podstawowe informacje o programie,
hotkey opt
włącza/wyłącza rozpoczęcie drukowanie po naciśnięciu klawiszy Ctrl-LeftShift-RightShift; opt przyjmuje wartości on lub off,
memsize xx
określa wielkość obszaru pamięci (dyskowej, w kilobajtach) używanej przez program do przechowywania wydruków na dysku; 63 < xx < 129,
noselect opt
zezwala lub zabrania ignorować zawartość przekazywaną w rejestrze DX podczas wywoływania Int17,
oneof opt
włącza i wyłącza rozpoczęcie drukowania po wykryciu znaku EOF (end of file),
onexit opt
włącza/wyłącza rozpoczęcie drukowania po zakończeniu programu użytkowego,
printer port
określa drukarkę, nad którą predir przejmuje kontrolę; dopuszczalne wartości: PRN, LPT1, LPT2, LPT3, LPT4 lub cyfra od 0 do 3 (0=LPT1, 3=LPT4); wyłączenie drukowania następuje gdy port przyjmuje wartość off,
prog program
określa nazwę programu lub zbioru .bat wykonującego funkcję przesłania zbioru na zdalny komputer i wydrukowania go; nazwa powinna być pełną nazwą pliku,
report
program wypisuje aktualną konfigurację,
spool dest
określa kartotekę i/lub nazwę zbioru tymczasowego używanego do przechowywania ,,przechwyconego'' wydruku (normalnie nie musi być używane),
swap dest
określa kartotekę i/lub nazwę zbioru używanego do zapisu zawartości części pamięci operacyjnej na czas drukowania (normalnie nie musi być używane),
timeout opt
ustawia opcję rozpoczęcia automatycznego drukowania, gdy program użytkowy przez określony czas (wyrażony w sekundach) nie wysyła żadnych informacji do drukarki; aby możliwość tę wyłączyć należy ustawić czas na 0,
unload
usuwa predir z pamięci, jeżeli jednak po załadowaniu go do pamięci załadowano inne programy rezydentne - usunięcie jest niemożliwe.

Działanie programu predir jest następujące: po uruchomieniu go, ładuje się rezydentnie do pamięci, przechwytując przerwanie Int17 (służące do komunikowania się programów użytkowych z drukarką). Następnie przechwytuje wszystkie odwołania do drukarki, zapisując dane (które normalnie przesyłane są do drukarki) w zbiorze dyskowym. Zawartość zbioru jest następnie drukowana gdy nastąpi jeden z warunków:

W najprostszej wersji drukowanie wykonywane jest z wykorzystaniem programu lpr (na domniemanej drukarce). Można utworzyć specjalne zbiory komend pozwalające zmieniać jego zachowanie.

Na czas wydruku (gdy trzeba uruchomić program lpr) predir musi zwolnić część pamięci operacyjnej - wykorzystywany jest zbiór pośredni na dysku; uruchomienie programu lpr nastąpić może ,,równocześnie'' z pracą programu użytkowego, i jest to potencjalnie niebezpieczne.

Po uruchomieniu programu predir jego zachowanie można zmienić za pomocą programu onpredir (używającego dokładnie takich samych jak dla predir parametrów).


Dalej Wyżej Poprzednio Spis treści indeks
Dalej: Poczta elektroniczna Wyżej: Drukowanie plików Poprzednio: lpr

Wojciech Myszka
pią, 14 lis 1997 11:12:41