Как я могу установить версию 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 - Шэн Цзян 晟 晟 11 сентября '13 в 0: 06
Второй ключ:
В более новой версии IE 10 и 11 истинная версия записывается в значение 'svcVersion' и значение 'Version' содержит в начале '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;
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