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]

Reply via email to