Windows NT4 bietet zur Zeit leider keine effiziente
Script-Programmiersprache an, welche auf die spezifischen Eigenschaften des Betriebssystems
eingeht. Windows Applikationen legen ihre globalen und Umgebungsvariablen in der Regel in
der Registry ab. Doch was nützt dies, wenn nicht alle Applikationen auf einfache Weise
auf die Registry zugreifen können ?
Perl ist eine der bekanntesten und am meist verbreiteten Scriptsprachen, sie stammt aus dem
Unix Umfeld, ist jedoch auch auf Windows (gratis) verfügbar. Die Firma ActiveState hat
eine stabile Perl Portierung auf NT4 vorgenommen (siehe: www.activestate.com). Mit Perl ist es ein leichtes auf die
Registry zuzugreifen, wie das folgende Beispiel zeigt um die Werte der aktuellen Oracle
Installation anzuzeigen.
Der entsprechende Key ist: HKEY_LOCAL_MACHINE\\SOFTWARE\\ORACLE.
# Purpose: List Registry Values for specified RegPath
# Include Win32:: Registry Package
use Win32::Registry;
# Set RegistryPath relative to # HKEY_LOCAL_MACHINE
$p = "\\SOFTWARE\\ORACLE";
# Strip leading backslashes
$p =~ s#^\\##;
# Now open the specified RegistryPath $p for
# HKEY_LOCAL_MACHINE. If the Open method succeeds,
# $key will contain the Registry object corresponding
# to the specified key.
$main::HKEY_LOCAL_MACHINE->Open($p, $key) || die "Open: $!";
# GetValues takes a reference to a hash as a parameter
# and populates that hash with all of the values for the
# specified Registry object.
$key->GetValues(\%vals);
# List Key/Value Pairs in the Registry
foreach $k (keys %vals) {
$key = $vals{$k};
print "$$key[0] = $$key[2]\n";
}
Output von: perl get_registry.pl
RDBMS80 = D:\Oracle\Product\8.0.5\RDBMS80
RDBMS80_ARCHIVE = D:\Oracle\Product\8.0.5\DATABASE\ARCHIVE
oisfp = D:\Oracle\Product\8.0.5\oisfp10
OO4O = D:\Oracle\Product\8.1.5\OO4O\mesg
oisfp10 = D:\Oracle\Product\8.0.5\oisfp10
EXECUTE_SQL = PLUS80
ORACLE_GROUP_NAME = Oracle for Windows NT
NLSRTL32 = D:\Oracle\Product\8.0.5\NLSRTL32
A2OWIZ80 = D:\Oracle\Product\8.0.5\A2OWIZ80
.............
|