#!/perl/bin/perl -w use UTF8; use Win32::TieRegistry 0.24 ; #"Classes" for HKEY_CLASSES_ROOT #"CUser" for HKEY_CURRENT_USER #"LMachine" for HKEY_LOCAL_MACHINE #"Users" for HKEY_USERS #"CConfig" for HKEY_CURRENT_CONFIG select STDERR;$|=1; select STDOUT;$|=1; my $col=1; $keyname='CUser\\_ATEST_'; print_key($Registry->{$keyname},$keyname,0); sub print_key { my ($cur_key, $keyname, $level)=@_; if ($col) { print "\n"; $col=0; } print " " x $level; $col=2; print "$keyname\\";my $nospaces=1; foreach $member ($cur_key->MemberNames) { if ($member =~ m|^(.+)\\$|) { $keyname=$1; if ($col) { print "\n"; $col=0; } $nospaces=0; print_key($cur_key->{"$keyname\\"}, "$keyname",$level+1); } elsif ($member =~ m|^\\(.*)$|) { $valuename=$1; $value=$cur_key->GetValue("$valuename"); $value=(defined $value)?$value:"(value not set)"; $value=(length($value))?$value:"(null)"; if (!$nospaces) {print " " x ($level+1); $col+=2;}; $nospaces=0; print "$valuename => $value"; if ($col) { print "\n"; $col=0; } } } }