DeutschEspañolFrançaisItalianoNederlandsPortuguêsΕλληνικάРусскийالعربية中文(简体)中文(繁體)日本語한국어
 
Donate Bitcoins
Google
 
www smithii.com
 

regdelta 0.2 has been released

I created regdelta to provide an automated way to produce .reg files of changes made when installing or running applications.

You can download the binary here and the binary with the source code here.

The program includes a complete test suite. Using it, I even discovered a few anomolies with the Microsoft tools regedit, and reg.

Here's the changelog:

regdelta changelog

Version 0.2 - 12 Jul 06:

	Standardized version information across all programs

Version 0.1 - 09 Jun 06:

	Initial release

And here's the readme.txt:

regdelta 0.2 - 12 Jul 2006
Copyright (c) 2005-2006 Ross Smith II (http://smithii.com) All Rights Reserved

------------------------------------------------------------------------------

Usage: regdelta [options] [key | file.reg] [key | file.reg]
Options:
-a | --all                  Compare/export all keys (HKCC HKCU HKCR HKLM HKU)
-x | --export key(s) ex.reg Export key(s) to ex.reg
-o | --output output.reg    Set output filename to 'output.reg'
-c | --comments             Include original values as comments in diff
-r | --regedit              Export in RegEdit format (implies -u -w)
-u | --unsorted             Do not sort the keys or values, as RegEdit
-w | --wordwrap             Wordwrap at 78 chars, as RegEdit
-v | --verbose              Show warnings that are normally hidden
-V | --version              Show version & copyright information & quit
-? | --help                 Show this help message and quit

Examples:
 regdelta HKCU hkcu.reg              ; compare HKCU key with hkcu.reg
 regdelta HKCU\1 HKCU\2              ; compare HKCU\1 key with HKCU\2 key
 regdelta -o diff.reg HKCU hkcu.reg  ; compare HKCU key with hkcu.reg
 regdelta -x HKCU hkcu.reg           ; export HKCU key to hkcu.reg
 regdelta -xr HKCU\Software ex.reg   ; export HKCU to ex.reg in REGEDIT format
 regdelta -ax allkeys.reg            ; export all keys to allkeys.reg

------------------------------------------------------------------------------

Notes:

regdelta.exe  reads and writes ASCII .reg files (Windows 9x/NT 4)
regdeltau.exe reads and writes Unicode .reg files (Windows 2000/XP/2003)

'key' can be one of the following:

HKCC	HKEY_CURRENT_CONFIG 
HKCU	HKEY_CURRENT_USER 
HKCR	HKEY_CLASSES_ROOT 
HKLM	HKEY_LOCAL_MACHINE 
HKU		HKEY_USERS

Reads entire registry into memory for performance, so this may be an
issue in a low memory environment.

------------------------------------------------------------------------------

To Do List:

Compare currently only works on files created by regdelta. This will be
fixed in a related release.

Add HKA | HKEY_ALL key

Options:
-e | --execute 'cmd' ex.reg Execute cmd & save differences to ex.reg
-s | --sort in.reg out.reg  Sort in.reg to out.reg

Examples:
 regdelta -s input.reg output.reg    ; sort input.reg to output.reg
 regdelta -e 'setup.exe /S' ex.reg   ; run setup & save differences in ex.reg

To emulate the --execute option, I've used this batch script, called regdiff.cmd:

@echo off
del "%TEMP%\~regdiff_?.reg" >nul 2>nul
regdelta.exe -ax "%TEMP%\~regdiff_1.reg"
start /wait %*
regdelta.exe -ax "%TEMP%\~regdiff_2.reg"
regdelta.exe -o "%~1_redo.reg" "%TEMP%\~regdiff_1.reg" "%TEMP%\~regdiff_2.reg"
regdelta.exe -o "%~1_undo.reg" "%TEMP%\~regdiff_2.reg" "%TEMP%\~regdiff_1.reg"
del "%TEMP%\~regdiff_?.reg" >nul 2>nul

Other keywords: diff, regdiff

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Oops!

All of my C/C++ programs require shared-1.1-win32-src.zip.

I will add this information to the readme files.

Thanks, Andrew

your help is much appreciated.

I have no idea

Regdelta is written in C++, and I've optimized it somewhat, but it could certainly be optimized more.

I'm using Windows XP SP2 and for me regdelta runs about 50% as fast as regedit or reg:

C:\>timethis regdelta -rx HKCU hkcu-regdelta.reg

TimeThis :  Command Line :  regdelta -rx HKCU hkcu-regdelta.reg
TimeThis :    Start Time :  Mon Apr 30 22:05:06 2007


TimeThis :  Command Line :  regdelta -rx HKCU hkcu-regdelta.reg
TimeThis :    Start Time :  Mon Apr 30 22:05:06 2007
TimeThis :      End Time :  Mon Apr 30 22:05:09 2007
TimeThis :  Elapsed Time :  00:00:02.234

C:\>timethis regdeltau -rx HKCU hkcu-regdeltau.reg

TimeThis :  Command Line :  regdeltau -rx HKCU hkcu-regdeltau.reg
TimeThis :    Start Time :  Mon Apr 30 22:05:13 2007


TimeThis :  Command Line :  regdeltau -rx HKCU hkcu-regdeltau.reg
TimeThis :    Start Time :  Mon Apr 30 22:05:13 2007
TimeThis :      End Time :  Mon Apr 30 22:05:16 2007
TimeThis :  Elapsed Time :  00:00:02.562

C:\>timethis regedit /e hkcu-regedit.reg HKEY_CURRENT_USER

TimeThis :  Command Line :  regedit /e hkcu-regedit.reg HKEY_CURRENT_USER
TimeThis :    Start Time :  Mon Apr 30 22:05:22 2007


TimeThis :  Command Line :  regedit /e hkcu-regedit.reg HKEY_CURRENT_USER
TimeThis :    Start Time :  Mon Apr 30 22:05:22 2007
TimeThis :      End Time :  Mon Apr 30 22:05:24 2007
TimeThis :  Elapsed Time :  00:00:01.984

C:\>timethis reg export HKCU hkcu-reg.reg

TimeThis :  Command Line :  reg export HKCU hkcu-reg.reg
TimeThis :    Start Time :  Mon Apr 30 22:06:46 2007


The operation completed successfully

TimeThis :  Command Line :  reg export HKCU hkcu-reg.reg
TimeThis :    Start Time :  Mon Apr 30 22:06:46 2007
TimeThis :      End Time :  Mon Apr 30 22:06:47 2007
TimeThis :  Elapsed Time :  00:00:00.906

C:\>dir hkcu*.reg

04/30/2007  10:06 PM         8,604,316 hkcu-reg.reg
04/30/2007  10:05 PM         7,739,849 hkcu-regdelta.reg
04/30/2007  10:05 PM        15,579,778 hkcu-regdeltau.reg
04/30/2007  10:05 PM        15,579,778 hkcu-regedit.reg
               4 File(s)     47,503,721 bytes

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
DeutschEspañolFrançaisItalianoNederlandsPortuguêsΕλληνικάРусскийالعربية中文(简体)中文(繁體)日本語한국어
 
Donate Bitcoins
Google
 
www smithii.com
 
Special thanks to Riester Rente Online for a generous donation!