你如何使用Delphi获得当前安装的IE版本?

时间:2010-07-15 07:18:27

标签: delphi internet-explorer

如何在计算机中安装IE版本?


我已经找到解决问题的方法,这样我就不用再检查当前安装的IE的版本了。谢谢你的答案。 :)

4 个答案:

答案 0 :(得分:8)

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版本号。

答案 1 :(得分:2)

我会更新这里提到的答案,old oneMS KB

第一把钥匙:

  

微软谎言IE10中的版本值是为了避免破坏   只能识别单个数字版本号的程序。更多   (hackish)方式是检查IE版本是检查文件版本的   mshtml.dll - 盛江蒋晟2013年9月11日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;

答案 2 :(得分:0)

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

答案 3 :(得分:0)

用途   注册表;

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;