Witam
Znalazlem ta funkcje w serwisie 4p.
no i pieknie lata i wykrywa wszystkie dostepne porty COM
jednak gdy odpwlilem ja na laptopie kolegi program sie zawiesil
niestety nie wiem nic o konfiguracji drugiego komputera.
ale na pewno jestto wina tej funkcji!
czy ktos ma pomysl co jest nie tak? Lub ktory fragment kodu
moze powodowac zawieszanie (zapetlanie?) sie aplikacji?
Function ListaPortow: TStringList;
var
n, MaxPorts: integer;
Port: THandle;
PortName: string;
Lista: TStringList;
begin
Lista := TStringList.create;
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
Lista.Add('COM '+IntToStr(n));
CloseHandle(Port);
end;
result := lista;
end;