Difference between revisions of "fcl-registry/es"

From Lazarus wiki
Jump to navigationJump to search
Line 40: Line 40:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== Accessing 64 bit and 32 bit registry views ==
+
== Accediendo a vistas del registro en 64 y 32 bits ==
If you have 64 bit Windows, the registry is split up into a 64 bit and 32 bit (compatibility) part. By default, if you run a 32 bit process, you see the 32 bit part; if you run a 64 bit application, you see the 64 bit part.
+
 
 +
Si tienes un sistema operativo de Windows de 64 bits, entonces el registro se encuentra repartido en 64 bits y 32 bits (compatibilidad)
 +
. Por defecto si arrancas un proceso de 32 bits entonces ves la parte correspondiente a la de 32 bits, mientras que si arrancas una de 64 bits entonces verá la parte de 64.
 +
 
 +
Puedes acceder a la parte de 32 desde una aplicación de 64 bits y viceversa. De MSDN:
  
You can also access the 32 bit part from 64 bit applications and vice versa. From MSDN:
 
 
http://msdn.microsoft.com/en-us/library/windows/desktop/aa384129%28v=vs.85%29.aspx
 
http://msdn.microsoft.com/en-us/library/windows/desktop/aa384129%28v=vs.85%29.aspx
* KEY_WOW64_64KEY: Access a 64-bit key from either a 32-bit or 64-bit application.
+
 
* KEY_WOW64_32KEY: Access a 32-bit key from either a 32-bit or 64-bit application.
+
* KEY_WOW64_64KEY: Acceso a una llave de 64 bits tanto desde aplicaciones de 32 como de 64 bits.
These keys are defined in the registry unit so you can just use them:
+
* KEY_WOW64_32KEY: Acceso a una llave de 32 bits tanto desde aplicacioens de 32 como de 64 bits.
 +
 
 +
Estas llaves se encuentran definidas en la unidad '''registry''' por lo que las puedes utilizar:
 +
 
 
e.g. in the registry object's Access property, like this:
 
e.g. in the registry object's Access property, like this:
 +
 
<syntaxhighlight>Registry := TRegistry.Create;
 
<syntaxhighlight>Registry := TRegistry.Create;
 
Try
 
Try

Revision as of 12:42, 11 March 2016

English (en) español (es) русский (ru)

fcl-registry es una unidad FCL que permite acceder al registro de Windows.

Terminología del Registro

El registro de Windows contiene un conjunto de entradas o apartados bien diferenciados que se denominan "hives", que van creando una estructura en árbol a partir de su raiz "root".

RootKey: es la entrada "hive" necesaria como comienzo para acceder al registro, como su nombre indica es la "llave raiz" comenzando con la H de Hive.

Ejemplos: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_CONFIG

Key: es la trayectoria al "directorio" que contiene los datos individuales. Puede parecer poco intuitivo pero aporta compatibilidad con versiones previas del registro.

Name/value (Nombre/Valor): los pares actuales name/value en el directorio de la llave "Key". Cada llave puede tener un valor por defecto cuyo valor es ''' (una cadena vacía).

Ejemplo

Ejemplo que trata de obtener un valor:

uses ... registry...  // registry es la unidad que vamos a necesitar para interactuar con el registro

var
  CompileCommand: string='';
  Registry: TRegistry;
begin
  Registry := TRegistry.Create;
  try
    // Navegamos al "directorio" apropiado, en este caso escogemos HKEY_LOCAL_MACHINE.
    Registry.RootKey := HKEY_LOCAL_MACHINE; // Tener en cuenta que este paso es necesario para realizar los siguientes.
    if Registry.OpenKeyReadOnly('\SOFTWARE\Classes\InnoSetupScriptFile\shell\Compile\Command') then
    // Con lo anterior abrimos la llave en modo solo lectura.
      CompileCommand:=Registry.ReadString(''); // Como ya le hemos indicado el trayecto, ahora leemos el valor del nombre indicado.
  finally
    Registry.Free; // Liberamos el recurso creado con "Create".
  end;
end;

Accediendo a vistas del registro en 64 y 32 bits

Si tienes un sistema operativo de Windows de 64 bits, entonces el registro se encuentra repartido en 64 bits y 32 bits (compatibilidad) . Por defecto si arrancas un proceso de 32 bits entonces ves la parte correspondiente a la de 32 bits, mientras que si arrancas una de 64 bits entonces verá la parte de 64.

Puedes acceder a la parte de 32 desde una aplicación de 64 bits y viceversa. De MSDN:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa384129%28v=vs.85%29.aspx

  • KEY_WOW64_64KEY: Acceso a una llave de 64 bits tanto desde aplicaciones de 32 como de 64 bits.
  • KEY_WOW64_32KEY: Acceso a una llave de 32 bits tanto desde aplicacioens de 32 como de 64 bits.

Estas llaves se encuentran definidas en la unidad registry por lo que las puedes utilizar:

e.g. in the registry object's Access property, like this:

Registry := TRegistry.Create;
Try
  Registry.Access:=Registry.Access or KEY_WOW64_64KEY;

or in the registry.create call, e.g.

TRegistry.Create(KEY_READ or KEY_WOW64_64KEY);

Administrative privileges

Depending on what you want to read/write in the registry, you may need administrator rights and elevation (Windows Vista+). Please see IDE_Window:_Project_Options#Use_manifest_file_to_set_execution_level_.28Windows_only.29

See also

Packages List


English (en) español (es) русский (ru)

See also

Packages List