[1] 版を表す文字列値です。 WinIE
でヘルプ→バージョン情報を表示させた時に出てくる版情報がこれです。
[2] >>1 ちなみに、この値を書き換えるとそのダイアログの表示値も変化します。
例: 5.50.4134.0100
- [3] 2002-11-03 (日) 13:28 名無しさん: 同じ場所の "Build" という値はビルド番号の文字列値で、上の例だと "54134.0100" になってました。どういう違いがあるのかは (想像は出来るものの) よくわかりません。
- [8] 2002-11-04 (月) 15:19 わかば Message::Field::UA で実装しますた。 $ua->replace_system_version ('ie') で "MSIE/6.0.2800.1106" (WinIE6 SP2 の場合) が追加されます。取得方法は >>1, >>4 を順に使います (>>1 が失敗/offしたら >>4)。
- [11] WinIE 3.02 ではこの値はない。同じ階層に Build=516, IVer=102, QFEVer=009 があるが、 IE のヘルプ→バージョン情報の値はどれとも一致しない。
[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$ 製品ですから...
- 4.00 Windows95 / WindowsNT 4.0
- 4.70 InternetExplorer 3.x
- 4.71 Internet Explorer 4.0
- 4.72 Internet Explorer 4.01 / Windows98
- 5.00 Internet Explorer 5.0 / Windows2000
- 5.81.4134.100 WindowsMe + IE 5.5
- [6] 2002-11-03 (日) 21:49 名無しさん: >>1,>>4 の値は、 IE4 以前では一般に知られている IE の版と一致しません。版が 4.x から始まっているからです。
- [7] 2002-11-03 (日) 21:50 6: たとえば IE3 では 4.70.1150 という値になりました。
- [9] 2002-11-04 (月) 15:20 名無しさん 5.81 == Internet Explorer 6.0 SP2 (version down してるんだろうか...)
- [10] 2002-11-04 (月) 15:21 9 IE6 では更新されなかった可能性もあるかな...