Chris Monahan aka Maze
ForeverWatcher@googlemail.com
Description:
a simple listing script for associations on a win32 system
like assoc for win 2000/XP except there isn't
yet any functionality to change association
Just list them...quite uselessly - just proof of concept
#perl-assoc 0.1
#by Chris Monahan + help from perl monks
#
#This is free software, you can distribute it under the same
#terms as perl itself
#
### a simple listing script for associations on a win32 system #
### like assoc for win 2000/XP except there isn't
+ #
### yet any functionality to change association
+ #
### Just list them... quite uselessly - just proof of co
+ncept#
use warnings;
use strict;
use Win32::TieRegistry (Delimiter => ":");
#use Data::Dumper;
my $class;
my $val;
my $key;
#my $error;
if (not defined($ARGV[0])){
foreach $class (keys %{ $Registry->{"Classes:"} }){
if ($class =~ /^[.]/) {
my $RegHash = $Registry->{"Classes:$class"};
#$error = Dumper %RegHash;
while (my ($key, $val) = each(%$RegHash)){#or die "failure
+ to read registry: $! \nlast contents of Registry Hash = $error \n";
if ($key eq ":"){
print "$class \t = \t $val\n";
}
#else{
# warn "unable to recognise association for $class"
#}
}
}
}
}
else {
$class = $ARGV[0];
if ($class =~ /^[.]/) {
my $RegHash = $Registry->{"Classes:$class"};
#$error = Dumper %RegHash;
while (my ($key, $val) = each(%$RegHash)){#or die "failure
+ to read registry: $! \nlast contents of Registry Hash = $error \n";
if ($key eq ":"){
print "$class \t = \t $val\n";
}
#else{
# warn "unable to recognise association for $class"
#}
}
}
}
#To-Do:
#everything
#use more sensible looping for listing - thank you ikegami
#enable formatting and verbose options
#enable changing types
## in the end possibly going into more advanced file type stuff
##