在perl中如何读取注册表

如何使用perl读写注册表信息?

#! perl
 
$section = "HKEY_CURRENT_USER\Environment";
$key     = "path"
if ( $section =~ m/^(HKEY_[^\]+)\(.+)$/i ) {
	$hive = uc(  );
	$tree = ;
} else {
	die $syntax;
}
 
# 初始化需要的模块
use Win32API::Registry 0.21 qw( :ALL );
 
# 将指定的配置单元从字符串转换为常量
if ( $hive eq "HKEY_CLASSES_ROOT"   ) { $hkey = HKEY_CLASSES_ROOT;   }
if ( $hive eq "HKEY_CURRENT_CONFIG" ) { $hkey = HKEY_CURRENT_CONFIG; }
if ( $hive eq "HKEY_CURRENT_USER"   ) { $hkey = HKEY_CURRENT_USER;   }
if ( $hive eq "HKEY_LOCAL_MACHINE"  ) { $hkey = HKEY_LOCAL_MACHINE;  }
if ( $hive eq "HKEY_USERS"          ) { $hkey = HKEY_USERS;          }
 
# 从注册表中读取值
RegOpenKeyEx( $hkey, $tree, 0, KEY_READ, $handle ) || die "无法打开 $section: ".regLastError()."\n";
RegQueryValueEx( $handle, $key, [], $type, $regval, [] ) || die "无法读取 $section\$key: ".regLastError()."\n";
RegCloseKey( $handle ) ||  die "无法关闭 $section: ".regLastError()."\n";
 
# 输出结果
print "\n[$section]\n$key=$regval\n";

日期:2020-04-11 23:04:32 来源:oir作者:oir