dostępne porty COM?

0

Witam!
W jaki sposób można sprawdzić jakie są dostępne porty COM. Mam program do komunikacji przez RSa i używam w nim komponentu CiaComPort, wszystko działa pięknie (no prawie ;)) tylko chciałbym aby w ustawieniach był wybór możliwych portów.
Jeżeli ktoś ma jakiś pomysł to proszę o informacje.
Pozdrawiam

0
Żywcem wykrojone z komponentu CiaComport do delphi bo nie chciało mi się samemu kombinować.
procedure CiaEnumPorts(PortList: TStrings);
var
   n, MaxPorts: integer;
   Port: THandle;
   PortName: string;
begin
   if Win32PlatForm = VER_PLATFORM_WIN32_NT then
      MaxPorts := 256
   else { if VER_PLATFORM_WIN32_WINDOWS }
      MaxPorts := 9;

   for n := 1 to MaxPorts do

   begin
      PortName := '\\.\COM' + IntToStr(n);
      Port := CreateFile(PChar(PortName), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0);

      if (Port <> INVALID_HANDLE_VALUE) or (GetLastError = ERROR_ACCESS_DENIED) then
         PortList.Add(IntToStr(n));

     CloseHandle(Port);
   end;
end;

//------------------------------------------------------------------------------
procedure CiaEnumAccessiblePorts(PortList: TStrings);
var
   n, MaxPorts: integer;
   Port: THandle;
   PortName: string;
begin
   if Win32PlatForm = VER_PLATFORM_WIN32_NT then
      MaxPorts := 256
   else { if VER_PLATFORM_WIN32_WINDOWS }
      MaxPorts := 9;

   for n := 1 to MaxPorts do
   begin
      PortName := '\\.\COM' + IntToStr(n);
      Port := CreateFile(PChar(PortName), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0);

      if (Port <> INVALID_HANDLE_VALUE) then
         PortList.Add(IntToStr(n));

     CloseHandle(Port);
   end;
end;

// nota bene od razu wyszukałem w wyszukiwarce - Q
0

Pod NT jest jeszcze jedna bardzo użyteczna funkcja,

QueryDosDevice,

która zwraca wszystkie urządzenia dostępne w systemie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1