This approach works >>
use Win32::API;
sub GetFileVersion {
my $fn = shift @_;
if (! $ref_GetFileVersionInfoSize) {
$ref_GetFileVersionInfoSize =
new Win32::API("Version", "GetFileVersionInfoSize", [P, P], I);
if ( ! defined $ref_GetFileVersionInfoSize) {
warn "Cannot import KERNEL fcn : GetFileVersionInfoSize : $!";
return undef;
}
}
# OK, we've got a handle for GetFileVersionInfoSize; use it!
my $z = 0;
my $sz = $ref_GetFileVersionInfoSize->Call($fn, $z);
if (! $ref_GetFileVersionInfo) {
$ref_GetFileVersionInfo =
new Win32::API("Version", "GetFileVersionInfo", [P, I, I, P],
I);
if ( ! defined $ref_GetFileVersionInfo) {
warn "Cannot import KERNEL fcn : GetFileVersionInfo : $!";
return undef;
}
}
# Allocate Space For File Version Info
my $FileInfo = "\x00" x $sz;
my $ignored = 0;
my $rc = $ref_GetFileVersionInfo->Call($fn, $ignored, $sz, $FileInfo);
$FileInfo =~ s/[^A-Za-z0-9.:]//go;
# Get only the File Version Info; this xform is "brute-force", but it
works!
$FileInfo =~ s/.*FileVersion([\d\.]*).*/$1/go;
return($FileInfo);
}
Yours,
Mike Genovese
ATI/Marlboro
QE
xt. 3845
5-881-3900, xt. 3845
-----Original Message-----
From: David Mamanakis [mailto:[EMAIL PROTECTED]
Sent: Wednesday, September 24, 2003 10:53 AM
To: [EMAIL PROTECTED]; Perl-Win32-Users
Subject: How do I get DLL file versions
I need a snippet of code that will get me the file versions from DLL files
in Windows
I have done a quick search, no luck... need it asap...
Thanks in ADVANCE!
--DM
_______________________________________________
Perl-Win32-Users mailing list [EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]