Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > поиск по реестру


Автор: npr2 20.5.2004, 09:53
Помогите, плиз! Как программно найти в реестре записи о портах СОМ, на разных компьютерах находятся в различных ветвях. Я пишу
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('hardware\devicemap\serialcomm',false);
Как написать путь, конкретный для данной машины программно, т.к на некоторых компьюторах путь
hardware\description\system\multifunctionadapter\4\serialcontroller\kk , где кк- номер порта.

Автор: Akella 25.5.2004, 08:02
Как узнать имена установленных в системе COM-портов?
Код

uses Registry;  

procedure TForm1.Button1Click(Sender: TObject);  
var  
 reg : TRegistry;  
 ts : TStrings;  
 i : integer;  
begin  
 reg := TRegistry.Create;  
 reg.RootKey := HKEY_LOCAL_MACHINE;  
 reg.OpenKey('hardware\devicemap\serialcomm',  
             false);  
 ts := TStringList.Create;  
 reg.GetValueNames(ts);  
 for i := 0 to ts.Count -1 do begin  
   Memo1.Lines.Add(reg.ReadString(ts.Strings[i]));  
 end;  
 ts.Free;  
 reg.CloseKey;  
 reg.free;  
end;


взято из DRKB
Добавлено @ 08:04
Как найти список параллельных портов?
Код

function PortExists(const PortName: string): Boolean;
var
 hPort: HWND;
begin
 Result := False;
 hPort := CreateFile(PChar(PortName), {name}
   GENERIC_READ or GENERIC_WRITE, {access attributes}
   0, {no sharing}
   nil, {no security}
   OPEN_EXISTING, {creation action}
   FILE_ATTRIBUTE_NORMAL or
   FILE_FLAG_OVERLAPPED, {attributes}
   0); {no template}
 if hPort <> INVALID_HANDLE_VALUE then
 begin
   CloseHandle(hPort);
   Result := True;
 end;
end;

{Parallel Ports}
for i := 1 to 9 do
begin
 if PortExists('LPT' + IntToStr(i)) then
   List.Append('Ports: Printer Port (LPT' + IntTostr(i) + ')');
end;


взято из DRKB

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)