Как я могу получить версию IE, установленную на моем компьютере?
Я нашел обходной путь для своей проблемы, так что мне больше не нужно проверять версию установленного в данный момент IE. Спасибо за ответы. :)
Как я могу получить версию IE, установленную на моем компьютере?
Я нашел обходной путь для своей проблемы, так что мне больше не нужно проверять версию установленного в данный момент IE. Спасибо за ответы. :)
uses
Registry;
function GetIEVersion : string;
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKeyReadOnly('Software\Microsoft\Internet Explorer');
try
Result := Reg.ReadString('Version');
except
Result := '';
end;
Reg.CloseKey;
finally
Reg.Free;
end;
end;
Эта функция должна возвращать текущий установленный номер версии IE.
Я бы обновил упомянутые здесь ответы, старый и MS KB.
Первый ключ:
Microsoft лжет о значении версии в IE10, чтобы не сломать программы, которые могут распознавать только однозначный номер версии. Более (хакерский) способ проверить версию IE — проверить версию файла mshtml.dll Sheng Jiang 蒋晟 11 сен.
Второй ключ:
В более новых версиях IE 10 и 11 истинная версия записывается в значение «svcVersion», а значение «Версия» содержит в начале «9».
Все это следует за кодом
function GetIEVersion: string;
begin
with TRegistry.Create do
try
RootKey := HKEY_LOCAL_MACHINE;
OpenKeyReadOnly('Software\Microsoft\Internet Explorer');
try
Result := ReadString('svcVersion');
if Result.IsEmpty then Result := ReadString('Version');
if Result.IsEmpty then raise Exception.Create('');
except
Result := '0';
end;
CloseKey;
finally
Free;
end;
end;
использует реестр;
function GetIEVersion(AOnlyMajorVersion: Boolean = False): string;
var
lVersao: string;
lReg: TRegistry;
begin
Result := '';
lReg := TRegistry.Create;
try
lReg.RootKey := HKEY_LOCAL_MACHINE;
if lReg.OpenKeyReadOnly('Software\Microsoft\Internet Explorer') then
begin
lVersao := '';
if lReg.ValueExists('svcVersion') then
begin
lVersao := lReg.ReadString('svcVersion');
end
else if lReg.ValueExists('Version') then
begin
lVersao := lReg.ReadString('Version');
end
else if lReg.ValueExists('IVer') then
begin
lVersao := lReg.ReadString('IVer');
end;
if (lVersao <> '') then
begin
if (AOnlyMajorVersion) then
begin
if (WordCount(lVersao, ['.']) > 0) then
begin
lVersao := ExtractWord(1, lVersao, ['.']);
end;
end;
end;
Result := Trim(lVersao);
lReg.CloseKey;
end;
finally
lReg.Free;
end;
end;
uses
Registry;
function GetIEVersion(Key: string): string;
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('Software\Microsoft\Internet Explorer', False);
try
Result := Reg.ReadString(Key);
except
Result := '';
end;
Reg.CloseKey;
finally
Reg.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('IE-Version: ' + GetIEVersion('Version')[1] + '.' + GetIEVersion('Version')[3]);
ShowMessage('IE-Version: ' + GetIEVersion('Version'));
end;
Источник: http://www.vbforums.com/showthread.php?t=342893< /а>