Re: Win32::Printer::Enum::Printer($server)
- From: Stephen Patterson <s.patterson@xxxxxxxxxx>
- Date: Fri, 24 Jun 2005 13:15:47 GMT
On Thu, 23 Jun 2005 13:18:43 +0100, Brian McCauley wrote:
> Has anyone ever managed to get Win32::Printer::Enum::Printer($server) to
> enumerate printers on a server?
If you can connect to a remote registry from perl, then this code may
work (it works fine with local printers).
sub list_printers {
# list available printers
my %printers;
# look at registry to get printer names for local machine
my $Register = 'SYSTEM\CurrentControlSet\Control\Print\Printers';
my ($hkey, @key_list, @names, @ports);
my $HKEY_LOCAL_MACHINE = $main::HKEY_LOCAL_MACHINE;
$HKEY_LOCAL_MACHINE->Open($Register, $hkey) or
Carp::croak "Can't open registry key HKEY_LOCAL_MACHINE\\$Register: $!";
$hkey->GetKeys(\@key_list);
foreach my $key (@key_list) {
my $path = $Register . '\\' . $key;
my ($pkey, %values, $printers);
$HKEY_LOCAL_MACHINE->Open($path, $pkey) or
Carp::croak "Can't open registry key HKEY_LOCAL_MACHINE\\$path: $!";
$pkey->GetValues(\%values);
push @ports, $values{Port}[2];
push @names, $values{Name}[2];
}
$printers{name} = [ @names ];
$printers{port} = [ @ports ];
return %printers;
}
--
Stephen Patterson steve@xxxxxxxxxxxxxx http://patter.mine.nu/
Linux Counter No: 142831 GPG Public key: E3E8E974
"Whoever said nothing is impossible never tried slamming a revolving door."
-- Melissa O'Brien
.
- References:
- Win32::Printer::Enum::Printer($server)
- From: Brian McCauley
- Win32::Printer::Enum::Printer($server)
- Prev by Date: Re: Win32::Printer::Enum::Printer($server)
- Next by Date: SSLeay & OpenSSL problem with install of IO::Socket::SSL
- Previous by thread: Re: Win32::Printer::Enum::Printer($server)
- Next by thread: Re: Win32::Printer::Enum::Printer($server)
- Index(es):
Relevant Pages
|