Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
3-88762
BAA
2002-06-04 19:03
2002.06.27
InterBase и TTime


1-88852
GrayFox
2002-06-17 15:52
2002.06.27
Как отобразить картинку на BitBtn когда BitBtn.enabled:=false ?


1-88788
Chakchir
2002-06-15 09:32
2002.06.27
Мастера подскажите как ускорить прорисовку компонент на форме.


1-88867
Мефодий
2002-06-13 20:12
2002.06.27
Мастера ! Где же вы ? Помогите же !!!!!


7-89050
Advokat
2002-04-01 21:35
2002.06.27
Ctr+Alt+Del в 98 и чтобы в 2к не было глюков




   Наверх