Code: |
unit PortInfo;
interface
uses Windows, SysUtils, Classes, Registry;
function EnumModems: TStrings;
implementation
function EnumModems: TStrings; var R: TRegistry; s: ShortString; N: TStringList; i: integer; j: integer; begin Result := TStringList.Create; R := TRegistry.Create; try with R do begin RootKey := HKEY_LOCAL_MACHINE; if OpenKey('\System\CurrentControlSet\Services\Class\Modem', False) then if HasSubKeys then begin N := TStringList.Create; try GetKeyNames(N); for i := 0 to N.Count - 1 do begin closekey; { + } openkey('\System\CurrentControlSet\Services\Class\Modem', false); { + } OpenKey(N[i], False); s := ReadString('AttachedTo'); for j := 1 to 4 do if Pos(Chr(j + Ord('0')), s) > 0 then Break; Result.AddObject(ReadString('DriverDesc'), TObject(j)); CloseKey; end; finally N.Free; end; end; end; finally R.Free; end; end;
end. |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!