ファイルのバージョン情報を取得する方法を使用できます。まず、iexplore.exe
パスを取得します。
function GetIEPath: string;
var
Reg: TRegistry;
Len: Integer;
begin
Result := '';
Reg := TRegistry.Create;
with Reg do
begin
try
RootKey := HKEY_CLASSES_ROOT;
OpenKeyReadOnly('CLSID\{0002DF01-0000-0000-C000-000000000046}\LocalServer32');
try
Result := ReadString('');
finally
CloseKey;
Len := Length(Result);
if Len >= 2 then
begin
if(Result[Len] = '"') then
Delete(Result, Len, 1);
if(Result[1] = '"') then
Delete(Result, 1, 1);
end
else
begin
Result := '';
end;
end;
finally
Free;
end;
end;
end;
{0002DF01-0000-0000-C000-000000000046}
InternetExplorerのCLSIDです。のデフォルトのキー値LocalServer32
はiexplore.exe
パスです。
次に、Simon Grossenbacherが示すように、このリンクでいくつかのAPI呼び出しを使用して、ファイルのバージョン情報を取得します。彼の関数を変更すると、次のようになります。
function GetIEVersion: string;
var
IEPath: string;
VerInfoSize: DWORD;
VerInfo: Pointer;
VerValueSize: DWORD;
VerValue: PVSFixedFileInfo;
Dummy: DWORD;
begin
Result := '0';
IEPath := GetIEPath;
if IEPath = '' then
Exit;
VerInfoSize := GetFileVersionInfoSize(PChar(IEPath), Dummy);
if VerInfoSize = 0 then
Exit;
GetMem(VerInfo, VerInfoSize);
GetFileVersionInfo(PChar(IEPath), 0, VerInfoSize, VerInfo);
VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
with VerValue^ do
begin
Result := IntToStr(dwFileVersionMS shr 16);
Result := Result + '.' + IntToStr(dwFileVersionMS and $FFFF);
Result := Result + '.' + IntToStr(dwFileVersionLS shr 16);
Result := Result + '.' + IntToStr(dwFileVersionLS and $FFFF);
end;
FreeMem(VerInfo, VerInfoSize);
end;
次に、たとえば、これを使用します。
ShowMessage(GetIEVersion);