Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   trabajo con el registro de windows (https://www.clubdelphi.com/foros/showthread.php?t=65377)

diego007 10-12-2009 04:41:21

trabajo con el registro de windows
 
Tola Amigos, soy nuevo en esto de programar en Delphi (es un nuevo capitulo de la Unversidad) y tengo el siguiete problema, tengo que hacer que un programa que al iniciar el sistema saque una imagen del registro, despues de unos minutos ejecuto algun programa X, despues de esto saco una nueva imagen del registro y me tiene que mostara las modificaciones en el (deben ser: creacion de nuvas adenas, eliminacion de cadenas y modificaciones de cadenas existentes) e buscado en internet y solo muestran como crear cadenas, pero no muestran como podria sacar solo los 3 parametros indicados. Alguien que tenga alguna idea de como hacer eso, please help

Neftali [Germán.Estévez] 10-12-2009 10:07:09

Supongo que los más fácil en este caso es sacar una copia del registro al principio, sacar otra copia del registro al final y luego mostrar las diferencias.

Sabrás que hay un programa en windows que permite trabajar con el registro llamado RegEdit. Este programa permite trabajar desde la línea de comandos con parámetros. Si lo llamas de la siguiente forma:

> REGEDIT /e c:\copiareg.reg

Obtendrás una copia del registro en ese fichero.
Una vez que tengas ambas copias puedes compararlas e intentar extraer diferencias.

Otra opción es no utlizar REGEDIT y usar la clase TRegistry que viene con Delphi. Con ella puedes acceder al registro y realizar TODAS las operaciones que necesites. En tu caso, sería recorrer todas las claves y guardarlas en algun fichero. Si lo realizas al principio y al final, luego tendrás que hacer lo mismo que antes. Comporarlas y extraer diferencias.

cocute 10-12-2009 11:28:31

por cierto por curiosidad he leido el post y me ha dado por ejecutar el
REGEDIT /e c:\copiareg.reg

y mi fichero de registro en Windows7 64 ocupa 300mb
es normal eso? como para comparar linea por linea ¿no?

Aunque no creo que te dejasen si es para una práctica, para comparar ficheros podrias hacerlo tambien desde la linea de comandos:
comp registroantes.reg registrodespues.reg >cambios.txt

Código PHP:

Syntax

Compares the contents of two files 
or sets of files.

COMP [data1] [data2] [/D] [/A] [/L] [/N=number] [/C]

data1 Specifies location and name(sof first file(sto compare
data2 Specifies location and name(sof second files to compare
/
D Displays differences in decimal format
/
A Displays differences in ASCII characters
/
L Displays line numbers for differences
/
N=number Compares only the first specified number of lines in each file
/
C Disregards case of ASCII letters when comparing files 


Aunque tampoco creo que te sirva utilizar librerias de terceros, ya que me imagino que tendras que entregar el código
tambien puedes mirar esto, que es freeware e incluye ejemplos, mejor que esto no encontrarás:
http://www.angusj.com/delphi/textdiff.html

Neftali [Germán.Estévez] 10-12-2009 12:01:04

A mi también me ha llamado la atención el tamaño del archivo generado.
En mi caso es de 114 Mg.
He probado a exportar el registro desde el RegEdit y me ha ocupado prácticamente la mitad. Revisando un poco veo que la exportación desde la línea de comandos (al menos tal y como la hemos visto antes) se realiza utilizando UNICODE, de ahí que ocupe el doble que la otra, que se hace con la codificación normal.


La franja horaria es GMT +2. Ahora son las 20:12:47.

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