![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как проверить наличие в системе портов LPT1 и LPT2 ? [D6, WinME]
Drex © (2003-01-08 09:27:00)По поиску в форуме вроде не находится ;-(...
Неплохо было бы для разных версий винды разобраться с этим вопросом. Но насколько я знаю это можно даже из под ДОС сделать.
France (2003-01-14 11:52:00) [1]Как узнать адрес LPT-порта
Эта функция работает в Win95 и Win98.
function GetPortAddress(PortNo: integer): word; assembler;
stdcall;
asm
push es
push ebx
mov ebx, PortNo
shl ebx,1
mov ax,40h // Dos segment adress
mov es,ax
mov ax,ES:[ebx+6] // get port adress in 16Bit way :)
pop ebx
pop es
end;
Drex (2003-01-08 12:56:00) [2]REA (c)
вот за 4 совет спасибо
Слесарь матерящийся
Вы имеете в виду регистры самого LPT или есть еще какие то регистры. А для W98 и моей ME можно и без компонента. Я пока напрямую работаю, но по уму, конечно надо бы компонент - согласен.
REA (2003-01-08 12:38:00) [3]4. Посмотреть реестр
HKEY_LOCAL_MACHINE\Enum\BIOS\
там записи типа таких
*PNP0400\0E
PORTNAME = LPT1
Class = "Ports"
Слесарь Матерящийся (2003-01-08 11:07:00) [4]1. Логические устройства -- CreateFile() (наиболее разумно);
2. Физическое присутствие -- опросить регистры и проанализировать результат (нужен компонент для работы с портами);
3. Построить список оборудования и проанализировать (Setup API).