Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 26-02-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por martonbarbosa Ver Mensaje
Ahora... mi duda, como puedo hacer que los numeros contenidos en esta linea: "'HARDWARE\DEVICEMAP\Scsi\Scsi Port 2\Scsi Bus 0\Target Id 1\Logical Unit Id 0\'" aumenten solos... digamos que recorra el registro 1 a 1 hasta encontrar el valor "Identifier"??? se entiende???

Ejemplo:
'HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 0\Target Id 0\Logical Unit Id 0\'
'HARDWARE\DEVICEMAP\Scsi\Scsi Port 1\Scsi Bus 1\Target Id 1\Logical Unit Id 1\'
etc, hasta que encuentre el valor "identifier"
Hola.

Por lo que entiendo de tu mensaje, el valor a buscar se encuentra en los nodos hijos de la clave a buscar ('DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 0\Target Id 0'.

Entonces podrías hacer:
Código Delphi [-]
function SearchValueName(const RKEY: HKEY; const SUBKEY, Searched: string): string;
var
  rd     : TRegDataInfo;
  st     : string;
  i,sz   : Integer;
  KNames,
  VNames : TStrings;
begin
  KNames := TStringList.Create;
  VNames := TStringList.Create;
  with TRegistry.Create do
  try
    RootKey := RKEY;
    if OpenKeyReadOnly(SUBKEY) then
    begin
      GetKeyNames(KNames);
      for i:= 0 to KNames.Count - 1 do
      begin
        CloseKey;
        OpenKeyReadOnly(SUBKEY + '\' + KNames[i]);
        GetValueNames(VNames);
        if VNames.IndexOf(Searched) <> -1 then
        begin
          GetDataInfo(Searched, rd);
          case rd.RegData of
            rdUnknown: Result := '';
            rdInteger: Result := IntToStr(ReadInteger(Searched));
            rdString , rdExpandString: Result := ReadString(Searched);
            rdBinary : begin
                         sz := GetDataSize(Searched);
                         SetLength(st, sz);
                         ReadBinaryData(Searched, PChar(st)^, sz);
                         Result := st;
                       end
          end
        end
      end
    end
  finally
    KNames.Free;
    VNames.Free;
  end;
end;
La función busca el nombre buscado (Searched) en los nodos hijos del argumento enviado en el parámetro SUBKEY. Si lo encuentra lee el valor y lo devuelve como string, en caso contrario devuelve cadena vacía

Llamada ejemplo:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(SearchValueName(HKEY_LOCAL_MACHINE,
                'SOFTWARE\Microsoft\Windows NT\CurrentVersion',
                'MicrosoftRedirectionURL'));
end;

En tu caso creo que sería:
Código Delphi [-]
  SearchValueName(HKEY_LOCAL_MACHINE,
                  'HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 0\Target Id 0',
                  'Identifier');

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Registro de Windows Khronos Varios 2 07-12-2008 23:23:28
registro de windows JULIPO Varios 4 26-07-2007 08:17:01
Uso de registro de Windows Alcolea Windows 3 05-06-2006 21:47:35
registro de Windows ebeltete API de Windows 1 17-06-2003 17:00:14
Registro de Windows Periyo Varios 3 08-05-2003 17:51:51


La franja horaria es GMT +2. Ahora son las 17:41:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi