Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.27;
Скачать: CL | DM;

Вниз

Почему Винды начинают тормазить при записи в порт   Найти похожие ветки 

 
Cranium ©   (2002-03-31 00:11) [0]

Использую следующий код для печети в порт..... При этом система начинает тормозить... Что делать чтоб работало без тормозов?

Процедура открытия порта :
procedure TFormCon.OpenPort;
begin
FHandle := CreateFile("LPT1", GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ
or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
if FHandle = INVALID_HANDLE_VALUE then
begin
if FErrorString <> nil then
LocalFree(Integer(FErrorString));
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM,
nil,
GetLastError(),
LANG_USER_DEFAULT,
@FErrorString,
0,
nil);
{SetErrorString; }
raise Exception.Create(FErrorString);
end
else
FPrinterOpen := True;
end;
Процедура записи в порт:
procedure TFormCon.Write(const Str: string);
begin
if not FPrinterOpen then
Exit;
NumberOfBytesToWrite := Length(Str);
OEMStr := PChar(LocalAlloc(LMEM_FIXED, NumberOfBytesToWrite + 1));
try
CharToOem(PChar(Str), OEMStr);
if not WriteFile(FHandle, OEMStr^, NumberOfBytesToWrite,
FNumberOfBytesWritten, nil) then
begin
if FErrorString <> nil then
LocalFree(Integer(FErrorString));
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM,
nil,
GetLastError(),
LANG_USER_DEFAULT,
@FErrorString,
0,
nil);
{SetErrorString;}
raise Exception.Create(FErrorString);
end;
finally
LocalFree(Integer(OEMStr));
end;
end;


Процедура закрытия порта:
procedure TFormCon.ClosePort;
begin
CloseHandle(FHandle);
if FErrorString <> nil then
LocalFree(Integer(FErrorString));
end;


 
Doom ©   (2002-03-31 00:20) [1]

это медленный порт тормозит тачку Попробуй посылать маленькими кусками поменьше


 
don-do   (2002-04-01 09:31) [2]

Есть функции Escape(F1) позволяют печатать как в тексте так и в графике.
Также если печатать на удаленный принтер
(например если вместо "LPT1" использовать "PrintServer\Printer1")
то печать происходит через WinSpool и тормозов не наблюдается
я перекрестил стоящие рядом 2-е тачки и userы остались довольны


 
cranium ©   (2002-04-01 23:23) [3]

Все это здорово, но беда втом что писть в порт надо на прямую и ни каких графических режимов не надо, только к примеру #110#112#123#10
и ни чего больше.......



Страницы: 1 вся ветка

Текущий архив: 2002.06.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
7-89047
Игорек
2002-03-29 12:46
2002.06.27
Файловая система


1-88828
Twinc №
2002-06-16 22:26
2002.06.27
install.sh


1-88837
svv
2002-06-17 11:30
2002.06.27
Как в заголовок вывести стрелочку (в дос код 25)?


3-88731
Oleg_er
2002-06-04 06:20
2002.06.27
SQL-запрос


14-89001
antistatic
2002-05-25 20:56
2002.06.27
Где можно бесплатно зарегить сайт в зоне .RU, .NET или .COM