[C++] porty COM

0

Wie ktoś, czy są może jakieś funkcje które zwracają nazwy dostepnych w systemie portów COM? Albo w ogóle jak można sie dowiedzieć które porty COM są dostepne. Dzięki za wszelką pomoc.

0

w biosie powinno cos byc

0

Jaki język? Jaki system operacyjny? Sprecyzuj!!!

0

język C++, system Windows. Może w API windowsa są jakieś funkcje do tego?

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;

Myślę, że zasada jest oczywista na tyle, że napisanie odpowiednika z C++ nie będzie trudne

0

wystarczy poszukac ksiazki 'programowanie rs232 w cbuilderze' czy jak ona sie tam wabi. ona jest na kazdej stronce o programowaniu.

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