Einzelnen Beitrag anzeigen

MaOfDe

Registriert seit: 3. Jan 2004
Ort: Berlin
73 Beiträge
 
Delphi 6 Personal
 
#3

Re: Statusinformation über ein Drucker

  Alt 18. Feb 2004, 22:09
Um Infos über den Druckerstatus zu erfahren, steht einem das Interrupt 17h und das Druckerstatus-Byte zur Verfügung.

Delphi-Quellcode:
function LeseStatusByte: Byte;
asm
  MOV AH, 02h
  XOR DX, DX //setzt DX-Register auf null
  INT 17h //löst Software-Interrupt für den Drucker aus(Funktion 02h-->Status-Byte des Druckers auslesen)
  MOV Result, AH //Status-Byte wird aus dem Register gesogen und einer Variablen übergeben
end;
Nun zu den einzelnen Bits und ihrer Bedeutung:
Bit 0: Time-Out/Reserviert
Bit 1+2: Reserviert

Bit 3: 1 = Ein-/Ausgabefehler
Bit 4: 1 = Drucker ist online
Bit 5: 1 = Kein Papier
Bit 6: 1 = Empfangsbestätigung
Bit 7: 1 = Drucker ist bereit

Delphi-Quellcode:
const
  PM_EA_ERROR = $08;
  PM_ONLINE = $10;
  PM_NOPAPER = $20;
  PM_ACKNOWLEDGEMENT =$40;
  PM_READY = $80;
:
if(LeseStatusByte and PM_NOPAPER=PM_NOPAPER)then ShowMessage('Sorry Atze, keen Papier mehr!');
:
  Mit Zitat antworten Zitat