reg01.pl to HTML.

index -|- end

Generated: Tue Feb 2 17:54:54 2010 from reg01.pl 2006/10/07 3.2 KB.

#!/Perl
print "Hello, World...\n";
use strict;
use warnings;
use Win32::Registry;
##use Win32::Registry::File;
##$reg = new Win32::Registry::File('system.reg');
##if ($reg->exists(['system', 'path'])) {
##   print $reg->get(['system', 'path']) . "\n";
##} else {
##   print "reg [system, path] does not exist ...\n";
##}
   # $oldpath = $reg->put(['system', 'path', 'C:\\windows']);
    # if ($reg->exists(['system', 'path'])) ...
    # $reg->delete(['system', 'path']);
    # $reg->save;
## HKEY_CLASSES_ROOT
## HKEY_CURRENT_CONFIG
my $Hkey = HKEY_CURRENT_USER;
## HKEY_LOCAL_MACHINE
## HKEY_PERFORMANCE_DATA
## HKEY_PERFORMANCE_NLSTEXT
## HKEY_PERFORMANCE_TEXT
## HKEY_USERS
my $File = 'File'; # numbered 1 - 16
my $FCnt = 1;
my %KHash = ();
my %K2Hash = ();
##my $Subkey = "Software\\ES-Computing\\EditPlus 2\\Recent File List\\File1";
##my $Subkey = "Software";
##my $Subkey = 'Software\ES-Computing';
##my $Subkey = 'Software\ES-Computing\EditPlus 2';
my $Subkey = 'Software\ES-Computing\EditPlus 2\Recent File List';
my $Reserved = NULL;
my $Sam = KEY_READ;
## KEY_WRITE
## KEY_EXECUTE
## KEY_ALL_ACCESS
my $CurrVer = '';
my $EPList;
my $p = 'SOFTWARE\Microsoft\Windows NT\CurrentVersion';
$HKEY_LOCAL_MACHINE->Open($p, $CurrVer) || die "Open $!";
my @keys = keys %{$CurrVer};
%KHash = %{$CurrVer};
my @k2 = keys %KHash;
my $cnt = scalar @k2;
my $key = '';
my $val = '';
my $class = '';
my $subs = '';
my $vals = '';
my $listref;
print "Version: [$p] ... " . scalar @keys . " ($cnt) key(s) ...\n";
foreach my $k (keys %{$CurrVer}) {
   my $v = ${%{$CurrVer}}{$k};
   print "k=[$k] v=[$v] ...\n";
}
foreach $key (keys %KHash) {
   $val = $KHash{$key};
   print "[$key] = [$val]\n";
}
# REG_SZ      String data
# REG_DWORD      Unsigned four-byte integer
# REG_MULTI_SZ   Multiple strings delimited with NULL
# REG_EXPAND_SZ   Strings that expand (e.g., based on environment variables)
# REG_BINARY   Binary data (no particular format is assumed)
# $parent->Open(keyname, $key)
my $var = '';
$HKEY_CURRENT_USER->Open($Subkey, $EPList) or die "Open $!";
###$EPList->GetKeys($listref);
## $EPList->GetValues($EPList)
$EPList->QueryKey($class, $subs, $vals);
print "Class=[$class], Subs=[$subs] vals=[$vals] \n";
##foreach $key (keys %{$listref}) {
##   print "key=$key\n";
##}
for (my $i = 1; $i < 3; $i++) {
   my $name = $File . $i;
   my $kvar = 'default';
   $EPList->QueryValue($name, $kvar);
   print "$i [$name] = [$kvar] \n";
}
@keys = keys %{$EPList};
%K2Hash = %{$EPList};
@k2 = keys %K2Hash;
$cnt = scalar @k2;
print "HKEY_CURRENT_USER:[$Subkey] ... " . scalar @keys . " ($cnt) key(s) ...\n";
foreach $key (keys %K2Hash) {
   $val = $K2Hash{$key};
   print "[$key] = [$val]\n";
}
my $RegHandle = 0;
Win32::Registry::RegOpenKeyEx($Hkey, $Subkey, $Reserved, $Sam, $RegHandle);
if ($RegHandle) {
   print "Got reg handle ...\n";
   Win32::Registry::RegCloseKey($RegHandle);
} else {
   print "Openning HKEY_CURRENT_USER/$Subkey FAILED!\n";
}
# QueryValue( (out)$value,(out)$type, $name ) 
# (out)$value Value of var $name 
# (out)$type Type of var $name 
# $name Name of value to query. 
# Sets $value, and $type for the specific name value in the current key.

index -|- top

checked by tidy  Valid HTML 4.01 Transitional