最好不用读注册表,因为有些用户受权限控制。API行吗?谢谢!

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      hCommFile : THandle;
      I: Integer;
    begin
      I := 0;
      repeat
        hCommFile := CreateFile(PChar(Format('COM%d', [I + 1])),
                              GENERIC_READ,
                              0,
                              nil,
                              OPEN_EXISTING,
                              FILE_ATTRIBUTE_NORMAL,
                              0);
        if hCommFile = INVALID_HANDLE_VALUE then Break;
        CloseHandle(hCommFile);
        Inc(I);
      until False;
      Caption := IntToStr(I);
    end;