Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Получить список установленных модемов в Win95-98

Delphi , Интернет и Сети , Dial-up

Получить список установленных модемов в Win95-98

У диалапера спрашивают:
- А что ты тестируешь, качество связи с новым провайдером?
- Нет, свои нервы... сколько они еще смогут выдержать этот коннект!!!


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.

Программный модуль на языке Pascal для Delphi, который извлекает список установленных модемов на Windows 95/98.

Интерфейс Вحدة PortInfo определяет функцию EnumModems, которая возвращает объект TStrings, содержащий список установленных модемов.

Имплементация Функция EnumModems использует следующие переменные:

  • R: Объект TRegistry для взаимодействия с реестром Windows.
  • s: Краткая строковая переменная для хранения значения ключа AttachedTo.
  • N: Объект TStringList для хранения имен подключенных кейсов под \System\CurrentControlSet\Services\Class\Modem.
  • i и j: Целочисленные переменные, используемые как счетчики цикла.

Функция выполняет следующие действия:

  1. Создает новый объект TRegistry (R) и устанавливает корневой ключ в HKEY_LOCAL_MACHINE.
  2. Открывает ключ \System\CurrentControlSet\Services\Class\Modem и проверяет, имеет ли он подключенные кейсы.
  3. Если есть, создает новый объект TStringList (N) и пополняет его именами подключенных кейсов с помощью GetKeyNames.
  4. Перебирает каждый подключенный кейс в N, закрывая и открывая ключ для чтения значений:
    • Читает значение ключа AttachedTo для каждого подключенного кейса.
    • Найдет первый цифровой символ (0-3) в строке значения, который представляет собой номер COM-порта.
    • Добавляет объект в результат список, содержащий описание драйвера и номер COM-порта.
  5. В конце освобождает объекты TRegistry и TStringList.

Результатом является объект TStrings, содержащий список строк, где каждая строка имеет формат "Описание драйвера (номер COM-порта)".

Обратите внимание, что это код использует синтаксис и библиотеки Delphi, поэтому он может не быть напрямую переносимым в другие языки или платформы.

В статье описывается программное решение для получения списка установленных модемов в операционной системе Windows 95-98, реализованное с помощью языка программирования Pascal и использования API Windows.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Dial-up ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-15 22:53:40/0.0054390430450439/1