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
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.