On Mon, 13 Jan 2003 12:54:04 +0100, "Jens Brejner" <einar@fedt.dk>
wrote:
>Hvordan kan jeg finde en windows platform's binær fil's versions nummer fra
>et perl script ?
Det kan du gøre med Win32::File::Ver.
Det kan i teorien hentes fra
http://base.dux.ru/guest/fno/perl/, men
den var ikke oppe sidste jeg så efter -- og modulet er ikke på CPAN.
Til gengæld kan du hente den via archive.org.
Du skal desuden installere Win32::API og Byron Brummer's enum.pm (som
findes her:
http://search.cpan.org/author/ZENIN/)
Derefter kan du f.eks. gøre:
---kilde---
#!/usr/bin/perl -w
use strict;
use Win32::File::Ver qw(ver print_ansi convert_raw_ver);
my $file = 'd:\Ad-aware.exe';
my $version = ver($file);
my $fileversion = convert_raw_ver( $version->{RawVersionInfo}[0],
$version->{RawVersionInfo}[1] );
my $prodversion = convert_raw_ver( $version->{RawVersionInfo}[2],
$version->{RawVersionInfo}[3] );
print "Fileversion : $fileversion\nProductversion:
$prodversion\n\n";
print_ansi($file);
---kilde---
som giver følgende output:
---output---
Fileversion : 5.00.8.5
Productversion: 5.00.8.5
CompanyName = LavaSoft
FileDescription = Ad-aware
FileOS = WINDOWS32
FileSubtype = UNKNOWN
FileType = APP
FileVersion = 5.0.8.5
InternalName = ad-aware.exe
LegalCopyright = © 2002 Lavasoft
OriginalFilename = ad-aware.exe
ProductName = Ad-aware, multi spyware removal utility
ProductVersion = 5.8
---output---
hth,
wulff