2016-08-22 14 views
3

私はWin32 :: GetOSVersion()perl関数を使用して宛先のOSバージョンを取得しています。しかし、このAPIの呼び出しは、Windows Server 2012Windows 10でPerlを使用してGetOsVersionを実行する方法

http://search.cpan.org/~jdb/Win32-0.52/Win32.pm

OS      ID MAJOR MINOR 
----------    --- ----- ----- 
Win32s     0  -  - 
Windows 95    1  4  0 
Windows 98    1  4  10 
Windows Me    1  4  90 

Windows NT 3.51   2  3  51 
Windows NT 4    2  4  0 

Windows 2000    2  5  0 
Windows XP    2  5  1 
Windows Server 2003  2  5  2 
Windows Server 2003 R2 2  5  2 
Windows Home Server  2  5  2 

Windows Vista   2  6  0 
Windows Server 2008  2  6  0 
Windows 7    2  6  1 
Windows Server 2008 R2 2  6  1 
Windows 8    2  6  2 
Windows Server 2012  2  6  2 

私はあまりにもWindowsの10上のOSのバージョンを取得することができ、他の方法/アプローチがあり件までサポートしていますか?

+0

ウェブ検索を実行します。この質問はbazillion回尋ねられました。 –

答えて

0

Win32モジュールはGetVersionExAを使用する(Win32.xs参照)とMSDN通り:

のWindows 8.1およびWindows 10では、バージョンの取得とGetVersionEx 機能が廃止されています。 Windows 10では、VerifyVersionInfo 関数も非推奨になりました。アプリケーションが Windows 8.1またはWindows 10を特に対象としていない場合は、 の非推奨関数を呼び出すことはできますが、Windows 8バージョン(6.2.0.0)がインストールされます。

出典:msdn

も参照してください:IsWindows10OrGreater function

あなたはそれを修正してもらう場合は、親切にプルリクエストを開く:)

+0

これは全く問題にはなりません(*「他の方法はありますか?」)。 – IInspectable

0

生データを取得するためのいくつかの他の方法がありますアプリケーションに合わせて解析することができます。

#!/usr/bin/perl 

use strict; 
use warnings; 

my $ver = `ver`; 

print "output of ver command: $ver\n"; 

my $reg = `reg query "HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion" /v "ProductName"`; 

# alternatively query for 'CurrentVersion' rather than 'ProductName' above 
print "output of registry query: $reg\n"; 
関連する問題