![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Cписок имен всех Com портов [D5, D6, Win95/98, WinME, NT4, Win2k, WinXP]
alexxxx © (2002-08-28 11:00:00)Здравствуйте. Как программно получить список имен всех Com портов, которые установленны на компьютере?
Т.е. что-то типа:
COM1
COM2
COM4
(т.к. COM3 не установлен)
Kaban (2002-08-29 09:32:00) [1]2 kosmach © (29.08.02 08:56)
Сильно, спустя сутки более чем достойный ответ
вы бы хоть предыдущие ответы почитали
kosmach (2002-08-29 08:56:00) [2]
....
var
reg: TRegistry;
{...}
begin
{...}
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.OpenKey("hardware\devicemap\serialcomm",false);
st := TStringList.Create;
reg.GetValueNames(st);
for i := 0 to st.Count -1 do begin
ComboBox1.Items.Add(reg.ReadString(st.Strings[i]));
end;
st.Free;
reg.CloseKey;
reg.free;
{...}
Под ХР и под 98 работает точно, под 2000 помоему тоже, а вообщето, этот код не мой, а нашел я его, когда мне это понадобилось, на этом сайте минут этак за 3. Так что в следующий раз можно сначала поискать.
Kaban (2002-08-28 13:40:00) [3]не знаю как в me, но в 98 работает
alexxxx (2002-08-28 12:23:00) [4]Для WinNT (2k, XP) согласен.
А для Win9x, Me?
Kaban (2002-08-28 11:04:00) [5]with TRegistry.Create do
begin
RootKey:=HKEY_LOCAL_MACHINE;
if OpenKey("HARDWARE\DEVICEMAP\SERIALCOMM",false) then
begin
Ss:=TStringList.Create;
GetValueNames(Ss);
for i:=0 to Ss.Count-1 do
begin
Port:=ReadString(Ss[i]);
Memo.Lines.Append(Port);
end;
Ss.Free;
CloseKey;
end;
Free;
end;