wine/programs/regapi
Andriy Palamarchuk 5db40a2aa6 Made regapi scripts able to process .reg files in regedit
format. Implemented unit tests for reg diff functionality.
2002-02-28 21:46:43 +00:00
..
tests Made regapi scripts able to process .reg files in regedit 2002-02-28 21:46:43 +00:00
.cvsignore Added .spec files for all libtest/ and programs/ WineLib apps. 2000-02-03 01:37:23 +00:00
Makefile.in Made regapi scripts able to process .reg files in regedit 2002-02-28 21:46:43 +00:00
README Made regapi scripts able to process .reg files in regedit 2002-02-28 21:46:43 +00:00
regapi.c Made regapi scripts able to process .reg files in regedit 2002-02-28 21:46:43 +00:00
regapi.spec Added some missing imports. 2000-11-09 20:41:13 +00:00
regFixer.pl Made regapi scripts able to process .reg files in regedit 2002-02-28 21:46:43 +00:00
regRestorer.pl Made regapi scripts able to process .reg files in regedit 2002-02-28 21:46:43 +00:00
regSet.sh Made regapi scripts able to process .reg files in regedit 2002-02-28 21:46:43 +00:00

Registry Command Line API Tool
------------------------------

  This progam is intended to fill a particular need.  I needed to make the 
  wine registry look like it would have been if my application would have 
  been installed by its installation program.  Since this was not possible I 
  took the following approach.

  1 - Use regedit to export my full Windows registry before I install my 
      application.

  2 - Use regedit to export my full Windows registry after I had install my 
      application.

  3 - Generate the differences between the two image.   What I obtain from the 
      diff is what I need to apply to the wine registry.

  Obvisouly the process is not that straight forward to solve, first, 
  you don't get the diff between two Windows regedit exported .reg file by 
  doing a simple diff.   What I had to do is a little more complex, but not 
  that much...

  (Assuming that the registry picture files are 
  named ./before.reg and ./after.reg)

  1 - Parse the before.reg and after.reg file into regFixer.pl, in order to 
      obtain lines in the form [HKEY\Sub1\Sub2\...\Subn]"Value"="Data"  
      (where "Data" can be prefixed by the type identifier : hex:, hex(0000000?) 
      or dword:)

  2 - Generate the diff between the before.reg.fix and after.reg.fix 
      into app.diff

  Now we have a app.reg file that contain what has been done by installing the
  application.  To this we extract the parts that we are interested in using 
  grep (and fix it with sed) and put that into app.added by example 
  ( let's say we keep the added values only ).

  At this point we know which registry entry to add to the wine registry.  It 
  only remains to take the format we have and reset it into a format  we get from
  regedit.
    
  So, once you parsed app.added into regRestorer.pl you get an app.reg ready to 
  process by regapi.

  So, this package comes with a few pieces:

  regFixer.pl     - Will convert the export of regedit 
                    into something "diff-able"

  regRestorer.pl  - Will convert "cleaned" diff file into 
                    something "regapi-able"
  
  regSet.sh       - Will do the procedure explained herein 
                    for the added key only.

  
FAQ
---

  Quick Start Guide
  -----------------
  1 - Get a snapshot of your windows registry in before.reg, (regedit/export)
  2 - Install your application,
  3 - Get a snapshot of your windows registry in after.reg.
  4 - Invoke ./regSet.sh before.reg after.reg


  Adding key I have in a regedit export file (nothing to diff with...)
  ------------------------------------------
  1 - Invoke ./regSet.sh /dev/null myRegistry.reg

  regapi help
  -----------
  1 - regapi has some sort of "man page like" help in it, simply invoke it 
      without any arguments.
 
Hope this is of any use to you.

Sylvain St-Germain.