Главная страница
    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
8-88965
[NIKEL]
2002-02-16 16:13
2002.06.27
Можно ли разбить BMP так


1-88941
Semyon
2002-06-15 18:02
2002.06.27
*


4-89072
IEEE
2002-04-29 10:59
2002.06.27
Windows Shell


3-88754
Igor_
2002-06-04 17:40
2002.06.27
Размер DLL


14-89022
lak_b
2002-05-27 01:26
2002.06.27
hook в VCL





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский