COM порт

2 отговора 179 прегледа
#1

COM порт

Как да разбера колко COM порта имам инсталирани?

Отговор
в отговор на pepi #2

Re: COM порт

Ами ако става въпрос за логическите портове, можеш да ги тестваш със следната функция:

function TestCOMPort(Number: byte): boolean;

var PortName: string;
Handle: THandle;

begin
Result:=false;
if (Number<1) or (Number>255) then
exit;
PortName:='COM'+inttostr(Number);
Handle:=createfile(PChar(PortName), GENERIC_READ or GENERIC_WRITE,
0, nil, OPEN_EXISTING, 0, 0);
if Handle=INVALID_HANDLE_VALUE then // Missing port
exit
else
closehandle(Handle);
Result:=true;
end;



Ако те интересува само броя, можеш да го изведеш по следния начин:

var C: byte = 0;
I: byte;

begin
for I:=1 to 255 do
if TestCOMPort(I) then
inc(C)
end;



Ако се интересуваш от истинските, физически COM портове (без разни
емулации, като USB->COM, Bluetooth и подобни), става малко по-сложно и
трябва да минеш на по-ниско ниво. Това са SetupAPI функциите (тези, които
оперират с DeviceManager) - можеш да ги погледнеш в MSDN.

Mixy
Отговор
в отговор на Mixy #3

Re: COM порт

Ами Mixy интересуваме, точно да разбера кои са ми физически съществуващите COM портове. Това как ще стане?

Отговор