Casa
Top.Mail.Ru Yandeks.Metrika
Foro: "Principal";
Archivo actual: 2002.01.10;
Descargar: [xml.tar.bz2];

abajo

Cómo almacenar la configuración del programa - 1 Encontrar ramas similares


Anatoly Podgoretsky   (2001-12-21 21:49) [0]

http://www.posgoretsky.com - FAQ по конференции fido7.ru.delphi
=============================================== =============
El siguiente texto es un resumen gratuito de los artículos individuales en la versión de febrero de Microsoft Platform SDK. Año 2001 desde la Natividad de Cristo. Al diseñar formas de almacenar la configuración de su programa, debe hacer tres preguntas:

Qué almacenar
Dónde almacenar
Cómo almacenar

Que almacenar

Dado que la primera parte de la pregunta es conocida por definición, es decir Si almacenamos la configuración del programa, pasaremos a la segunda parte de la pregunta. Su programa está instalado en la COMPUTADORA y los USUARIOS lo usan. En consecuencia, todas las configuraciones se dividen en dos partes, o incluso las tres: configuraciones que se aplican a la computadora en su conjunto, configuraciones que se aplican a todos los usuarios locales, configuraciones que se aplican a un usuario específico. Dependiendo de los detalles del programa, las partes primera y segunda se pueden combinar o separar.
Por lo tanto, es importante hacer una separación lógica: qué configuraciones de su programa son realmente específicas para la PC en sí, qué configuraciones deben aplicarse a todos los usuarios, que deben aplicarse a un usuario específico. Además, Microsoft recomienda que la configuración tenga en cuenta la posible movilidad del usuario, es decir, para un usuario ubicado en diferentes lugares, es posible que deba tener diferentes conjuntos de configuraciones.

Donde almacenar

En general, me vienen a la mente tres cosas.
Almacenar configuraciones en el registro.
Almacene la configuración en el directorio donde está instalado el programa.
Almacene la configuración en el directorio de sistema de Windows.
Almacene la configuración en el directorio de inicio del usuario.

Windows tiene tres lugares para almacenar la configuración que debe usar.

Registro del sistema
El directorio de inicio del usuario (más precisamente, uno de sus subdirectorios)
Directorio compartido para usuarios

Otros pensamientos sobre las ubicaciones de almacenamiento de configuraciones deberían descartarse como dañinos y poco naturales, Microsoft ya ha creado todo para usted y no debe pervertirse. Para aquellos que no entienden por qué, les explico. En un sistema operativo normal (W "NT, W" 2K), un programa generalmente comienza en nombre y con los derechos de un usuario específico. Por lo general, si este usuario no es administrador, tiene derecho a cambiar el contenido de los siguientes recursos:

parte del registro HKEY_CURRENT_USER \ *
contenido de su directorio de inicio
contenido del directorio temporal (que generalmente se encuentra dentro del directorio de inicio)
el contenido de un directorio o directorios especialmente asignados para esto por el administrador

Bajo la administración normal del sistema (lectura paranoica), otros lugares son accesibles solo en modo de lectura o no son accesibles en absoluto. Incluyendo los \ Archivos de programa y las carpetas de Windows. Por lo tanto, cualquier intento por parte del programa de modificar cualquier recurso de archivo además del anterior está plagado del hecho de que él (el programa) y él (el usuario) serán enviados. Y no en la forma más educada.

ejemplo
Adobe Photoshop y sus desarrolladores creen ingenuamente que deberían tener derechos exclusivos para depositar sus archivos de memoria virtual en los directorios raíz de los discos, además, creen que deberían usar la parte de acceso completo del registro del sistema. Directorios temporales asignados específicamente para este tipo de ocupación, no están satisfechos. Como resultado, Photoshop tiene serios problemas al trabajar con Windows NT / 2000.



Anatoly Podgoretsky   (2001-12-21 21:49) [1]

Registro del sistema

En términos de almacenamiento de la configuración del programa, el registro del sistema se divide en dos partes. Estas son las ramas HKEY_CURRENT_USER para almacenar configuraciones específicas del usuario y HKEY_LOCAL_MACHINE para almacenar configuraciones específicas para toda la PC y, en consecuencia, todos los usuarios que trabajan con esta PC. La estructura de ramificación recomendada para almacenar la configuración del programa es HKEY_CURRENT_USER \ Software \ Company Name \ Application Name \ Version y, en consecuencia, HKEY_LOCAL_MACHINE \ Software \ Company Name \ Application Name \ Version. Es aconsejable no almacenar el nombre de la empresa, el nombre de la aplicación, los parámetros de la versión como líneas codificadas en el código del programa, sino establecerlos en las opciones del proyecto (Proyecto \ Opciones \ Información de la versión) y posteriormente obtenerlos del recurso utilizando la misma biblioteca RxLib. Una forma alternativa de seleccionar los datos de la versión del programa de los recursos es usar la API de Windows (GetFileVersionInfo, GetFileVersionInfoSize, VerQueryValue).
El programa debe esperar que el acceso a las subclaves HKEY_LOCAL_MACHINE esté permitido en modo de solo lectura, y el acceso a las subclaves HKEY_CURRENT_USER permite leer, cambiar y crear nuevas subclaves y valores.
El programa debe basarse en el hecho de que las claves que necesita pueden no aparecer en el registro o que los valores en el registro tienen un formato incorrecto o valores no válidos. En este caso, en lugar de configuraciones inexistentes o incorrectas, el programa debe usar los valores predeterminados que el desarrollador puede "introducir en el código" o usar varias funciones del sistema.
No use el registro para almacenar grandes cantidades de datos. En cambio, es mejor almacenar datos voluminosos en un archivo separado y recordar el nombre de este archivo en el registro.

Directorio de inicio de usuario

Para almacenar la configuración demasiado grande para colocarla en el registro, hay directorios especialmente asignados dentro del directorio de inicio del usuario. Estos directorios se denominan comúnmente "directorios especiales" y se denominan Datos de aplicación y Configuración local. La ruta completa a ellos se puede obtener utilizando las funciones SHGetSpecialFolderPath o SHGetFolderPath.

Directorio de usuario común

Este suele ser el directorio "Documentos y configuraciones \ Todos los usuarios". En su interior hay los mismos subdirectorios para almacenar configuraciones y datos de programas pero relacionados con todos los usuarios. La ruta completa a ellos también se puede obtener utilizando las funciones SHGetSpecialFolderPath o SHGetFolderPath.

Cómo almacenar

Registro del sistema
Para trabajar con el registro, puede usar las funciones API del Registro con un total de aproximadamente 40 piezas, o puede usar las clases de Registry.pas - TRegistry, TRegistryIniFile, TRegIniFile. Se debe prestar especial atención a TRegistryIniFile, que proporciona un modelo simplificado de acceso al registro del sistema muy similar al modelo de trabajo con archivos INI.

Archivos INI
Este es un método antiguo para almacenar la configuración del programa, pero todavía lo usan los programadores. La configuración se almacena en un archivo de texto como:

[Sección1]
Field1 = Value1
Field2 = Value2
...Venta de Casas y Condominios en Calgary. Fernando Aramburu agente inmobiliario
CampoN = ValorN

[Sección2]
Field1 = Value1
Field2 = Value2
...Venta de Casas y Condominios en Calgary. Fernando Aramburu agente inmobiliario
CampoN = ValorN
...Venta de Casas y Condominios en Calgary. Fernando Aramburu agente inmobiliario

[SecciónN]
Field1 = Value1
Field2 = Value2
...Venta de Casas y Condominios en Calgary. Fernando Aramburu agente inmobiliario
CampoN = ValorN

Para acceder a los datos contenidos en los archivos INI, hay clases del módulo IniFiles: TIniFile, TMemIniFile.
La ventaja de usar archivos INI es que pueden editarse fácilmente usando un editor de texto. Por lo general, son más fáciles de leer que el árbol de claves de registro.

Archivos de configuración binarios
También me gustaría hablar sobre el uso de archivos binarios como repositorio para la configuración del programa. Los motivos habituales de los fanáticos para usar archivos binarios:

Ahorro de espacio
La configuración se puede ocultar al usuario (hacerla ilegible)

El primero es estúpido porque la información de configuración generalmente ocupa poco espacio y los ahorros son escasos. El segundo es estúpido porque la incapacidad para ver y editar los datos de configuración utilizando medios simples (editor de texto) o incorporado (editor de registro) crea más problemas tanto para el usuario como para el desarrollador, en lugar del beneficio (y muy dudoso) del hecho de que alguien no podrá leer lo que está escrito en el archivo . Además, el uso de un archivo binario no se puede llamar protección contra la visualización no deseada, porque cualquier "usuario avanzado" aún podrá ver y comprender el contenido de la configuración utilizando el editor de archivos binarios.

conclusión

Casi toda esta información se obtuvo de un almacén de sabiduría llamado Platform SDK (Software Development Kit), suministrado como parte de la recopilación de documentación de MSDN (Microsoft Software Developer Network). Se recomienda encarecidamente a los desarrolladores que compren Platform SDK, esto elimina una gran cantidad de problemas relacionados con la programación para Windows.



SerGa   (2001-12-21 21:59) [2]

Gracias de nuevo



Páginas: 1 rama entera

Foro: "Principal";
Archivo actual: 2002.01.10;
Descargar: [xml.tar.bz2];

arriba





Memoria: 0.58 MB
Tiempo: 0.016 c
6-28513
atenuar
2001-10-15 02:19
2002.01.10
Código fuente http o cómo organizarlo ...


3-28447
- = CrazyFish = -
2001-12-07 13:27
2002.01.10
registro / clave eliminada


1-28478
tovSuhov
2001-12-22 13:47
2002.01.10
¿Cómo ListView?


1-28476
Por favor
2001-12-22 09:42
2002.01.10
Guardado dialog


4-28557
vovan1
2001-11-08 18:35
2002.01.10
Proceso de creación





africaans albanés Arabic armenio Azerbaiyán vasco Bielorruso Bulgarian Catalán Chino (simplificado) Chino (tradicional) Croata Checo Danés Dutch Inglés Estonia filipina Finnish French
gallego georgiano Alemán Griego criollo haitiano Hebreo hindi Húngaro islandés Indonesian irlandés Italiano Japonés Korean letón lituano macedonio Malay maltés Noruego
persa polaco Portuguese Rumano Ruso Serbio Slovak Esloveno Español swahili Sueco Thai turco ucranio Urdu vietnamita galés yídish bengalí bosnio
cebuano esperanto gujarati hausa hmong igbo javanés kannada khmer lao latín maorí marathi mongol nepali punjabi somalí Tamil telugu yoruba
zulú
Английский Francés Alemán Italiano portugués Русский Español