Internet Explorerの版を調べる

Internet Explorerの版を調べる

レジストリ HKLM\SOFTWARE\Microsoft\Internet Explorer\"Version"

[1] 版を表す文字列値です。 WinIEヘルプバージョン情報を表示させた時に出てくる版情報がこれです。

[2] >>1 ちなみに、この値を書き換えるとそのダイアログの表示値も変化します。

例: 5.50.4134.0100

API 関数 DLLGetVersion

[4] WinIE の版と同じらしい shlwapi.dll の DLLGetVersion を使って次のようにして取得出来ます。

shlwapi.dll は WinIE 付属ですから、 IE のない Win95 などでは使えません。

また、 >>1 の方法で取得できる情報の内の最初の3つの数値しかとれません。しかし >>2 のように改竄できないので、確実といえば確実です。

require Win32::API;
my $M2W = new Win32::API (shlwapi => "DllGetVersion", P => 'N');
my $ver = pack lllll =>
	4*5,	## size of this structure
	0,	## major version
	0,	## minor version
	0,	## build number
	0;	## platform (1 == Win9x, 2 == WinNT)
$M2W->Call ($ver);
my (undef, $major, $minor, $build, undef) = unpack lllll => $ver;
printf "%d.%02d.%04d\n", $major, $minor, $build;

[5] 将来に渡って IE の版と同じ値を返すのかどうかとかはわかりません。 M$ 製品ですから...

comctl32.dll の版から推定する