手続き |
Windows 10 |
Windows 8.1 |
Ver コマンド |
10.0.10240 |
6.3.9600 |
Delphi XE8 システム変数 |
10.0.0 |
6.3.0 |
Delphi2007 システム変数 |
6.2.9200 |
6.2.9200 |
レジストリ CurrentVersion |
6.3.10240 |
6.3.9600 |
GetVersionEx 注1) |
6.2 |
6.2 |
GetVersionEx 注2) |
10.0 |
6.3 |
注1) マニフェストがデフォルトの場合
Windows8.1以上で Windows 8.0の値を返す。
注2) マニフェストに下記を追加した場合
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
注3) Windows10で追加されたレジストリ
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
に下記の2項目が追加された。
CurrentMajorVersionNumber
CurrentMinorVersionNumber
CurrentVersion はWindows8.1迄の値を返す。
参考) Delphi XE8 ではシステム変数 Win32MajorVersion, Win32MinorVersion で真のバージョンが得られる。
Delphi 2007 では下記の手続きを利用できる
Procedure GetWinVer(Var Major, Minor, Build : Integer);
var St : String; n : Integer;
begin
Major := 0; Minor := 0; Build := 0;
with TRegistry.Create do begin
try
Rootkey := HKEY_LOCAL_MACHINE;
if OpenKeyReadOnly('SOFTWARE\Microsoft\Windows NT\CurrentVersion') then begin
if ValueExists('CurrentMajorVersionNumber') then begin { >= Windows 10 }
Major := ReadInteger('CurrentMajorVersionNumber');
Minor := ReadInteger('CurrentMinorVersionNumber');
end
else begin { <= Windows 8.1 }
St := ReadString('CurrentVersion');
n := Pos('.', St);
if n>0 then begin
Major := StrToInt(Copy(St, 1, n-1));
Delete(St, 1, n);
Minor := StrToInt(St);
end
else
Major := StrToInt(St);
end;
Build := StrToInt(ReadString('CurrentBuildNumber'));
end;
finally
CloseKey;
end;
end;
end;
7. IEを既定のブラウザに設定する手順。