I am trying to capture the registry changes made by a software installation but am not having much success. My thought was to capture the registry using Win32::TieRegistry before and after the install and compare them. Butthe code below says no changes were made to the registry during install (I verified that the reg keys were made).
According to the Win32::TieRegistry documentation, I can call the Flush() method to Flush "all cached information about the Registry key so that future uses will get fresh data from the Registry." But for some reason, my $LmRegAfter is the same as my $LmRegBefore. Any suggestions would be appreciated.
use strict;
use Win32::TieRegistry ( Delimiter=>"/", ArrayValues=>0 );
#snapshot registry before install
my $LmRegBefore = $Registry->{"LMachine/Software/"};
#Run the installation program - much harder in real life, but this is
+a test script :)
my $install='path to install to run';
system($install);
#Flush the reg subkey
my $r=$Registry->{"LMachine/Software/"}->Flush();
print ("Flushing LMachine[$r]");
#snapshot registry after install
my $LmRegAfter = $Registry->{"LMachine/Software/"};
registryChanges($LmRegBefore,$LmRegAfter);
#############
sub registryChanges{
my $regBefore=shift;
my $regAfter=shift;
foreach my $key (keys(%{$regAfter})){
if(!defined $regBefore->{$key}){
my $val=$regAfter->{$key};
$change{$key}=$val;
print "registryChanges[$key]=[$val]\n";
}
}
}
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.