【发布时间】:2010-08-24 06:28:22
【问题描述】:
在 Windows 注册表的卸载键下查看是不是最好的方法? 是否有提供此信息的 Microsoft API 调用?是否从 XP 开始支持?
检测本地计算机上安装了哪个版本的 Internet Explorer 的最佳方法是什么?
【问题讨论】:
标签: windows internet-explorer browser
在 Windows 注册表的卸载键下查看是不是最好的方法? 是否有提供此信息的 Microsoft API 调用?是否从 XP 开始支持?
检测本地计算机上安装了哪个版本的 Internet Explorer 的最佳方法是什么?
【问题讨论】:
标签: windows internet-explorer browser
您必须查看注册表,而不是卸载键。反而,
在HKLM\Software\Microsoft\Internet Explorer 找到密钥并读取名为Version 的值。
对于较新的版本(IE 10 及更高版本),Version 是 9.x(例如,IE 10 是 9.10.something),新的 svcVersion 值给出了真正的 IE 版本。
微软甚至推荐了这种技术;见here。
【讨论】:
如果您需要知道 IE 版本到 Web 应用程序中,您可以获取 User-Agent 或使用 javascript:
您在这里获得了有关如何获取 Internet Explorer 版本的 Microsoft 示例 http://msdn.microsoft.com/en-us/library/ms537509(VS.85).aspx
如果您需要将 IE 版本检测到 X 语言的桌面程序中,您需要读取 Windows 注册表
此注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer 包含属性Version 与IE 版本
【讨论】:
版本值似乎不包括您最可能需要的 Internet Explorer 版本信息。相反,请查看 svcVersion 或 svcUpdateVersion 以获取信息。
例如,我正在运行 IE 10,如果我查询版本注册表值 9.10.9200.16798 会返回,但如果我查询 svcUpdateVersion 会返回 10.0.13。后者对应于实际的 Internet Explorer 版本,即 10。
REG QUERY "HKLM\Software\Microsoft\Internet Explorer" /v 版本 HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer 版本 REG_SZ 9.10.9200.16798
REG QUERY "HKLM\Software\Microsoft\Internet Explorer" /v svcUpdateVersion HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer svcUpdateVersion REG_SZ 10.0.13
REG QUERY "HKLM\Software\Microsoft\Internet Explorer" /v svcVersion HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer svcVersion REG_SZ 10.0.9200.16798
【讨论】:
我想挑战检查注册表的传统智慧。考虑System.Windows.Forms.WebView.Version的参考来源:
string mshtmlPath =
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "mshtml.dll");
FileVersionInfofvi = FileVersionInfo.GetVersionInfo(mshtmlPath);
return new Version(
fvi.FileMajorPart, fvi.FileMinorPart, fvi.FileBuildPart, fvi.FilePrivatePart);
大概,编写WebView 类的人知道他们在做什么。
【讨论】:
您还可以使用此脚本了解多台计算机上的 IE 版本:
@Echo off
Cls
MD C:\SYSADMIT > NUL
Echo. > c:\SYSADMIT\Resultados.txt
SET ListaEquipos=C:\SYSADMIT\ListaEquipos.txt
For /F "Tokens=*" %%z In (%ListaEquipos%) Do (
echo %%z >> c:\SYSADMIT\Resultados.txt
reg query "\\%%z\hklm\Software\Microsoft\Internet Explorer" /v svcVersion >> c:\SYSADMIT\Resultados.txt
)
在文件中:ListaEquipos.txt,有一个计算机列表。
还需要检查目标计算机上启用的RemoteRegistry服务。
摘自:http://www.sysadmit.com/2017/08/windows-buscar-version-de-internet-explorer-en-equipo-remoto.html
【讨论】: