Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

perl-assoc 0.1

by Maze (Sexton)
on Aug 16, 2006 at 20:29 UTC ( #567756=sourcecode: print w/replies, xml ) Need Help??
Category: Win32 stuff
Author/Contact Info 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
##
Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: sourcecode [id://567756]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (5)
As of 2020-09-22 21:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    If at first I donít succeed, I Ö










    Results (130 votes). Check out past polls.

    Notices?