uses
SysUtils, JwaWinType, JwaWinNT,
JwaWinBase, JwaNtDdPar;
{$WARN SYMBOL_PLATFORM OFF}
function GetLptStatus: Boolean;
var
eFileHandle: THandle;
eInfo: TParQueryInformation;
eBytesReturned: DWORD;
begin
// откроем порт
eFileHandle :=
CreateFile('LPT1', GENERIC_READ, 0, nil, OPEN_EXISTING, 0, 0);
Win32Check(eFileHandle <>
INVALID_HANDLE_VALUE);
try
// узнаем состояние
Win32Check(DeviceIoControl(eFileHandle,
IOCTL_PAR_QUERY_INFORMATION, nil, 0,
@eInfo, SizeOf(eInfo),
@eBytesReturned, nil));
Result := (Byte(eInfo.Status)
and PARALLEL_BUSY) = 0;
finally
// не забудьте закрыть хендл по завершению
работы
Win32Check(CloseHandle(eFileHandle));
end;
end;
|