Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.06.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.006 c
3-88715
icu
2002-06-03 15:49
2002.06.27
Как организовать хранимую процедуру?


1-88881
zeos
2002-06-14 13:44
2002.06.27
Объединение значений Label ов.


1-88902
voodoo_alex
2002-06-13 21:59
2002.06.27
Как идеологически верней ?


8-88971
Диана
2002-02-16 12:30
2002.06.27
Заставка


4-89070
Александр_30
2002-04-27 11:49
2002.06.27
Как нарисовать бордюрчик другим цветом?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский