Delphi WebBrowser内核版本修改D7
private
{ Private declarations }
public
{ Public declarations }
function WriteAppNameToReg:Boolean;
function GetIEVersionStr: string;
function IsWin64:Boolean; var
Form3: TForm3; implementation function TForm3.IsWin64:Boolean; // 判断系统
var
Kernel32Handle:THandle;
IsWow64Process: function(Handle:Windows.THandle;var Res:Windows.BOOL):Windows.BOOL;stdcall;
GetNativeSystemInfo:procedure(var lpSystemInfo:TSystemInfo);stdcall;
isWoW64: Bool;
SystemInfo: TSystemInfo;
const
PROCESSOR_ARCHITECTURE_AMD64=9;
PROCESSOR_ARCHITECTURE_IA64=6;
begin
Kernel32Handle:=GetModuleHandle('KERNEL32.DLL');
if Kernel32Handle=0 then
Kernel32Handle:=LoadLibrary('KERNEL32.DLL');
if Kernel32Handle<>0 then
begin
IsWOW64Process:=GetProcAddress(Kernel32Handle,'IsWow64Process');
GetNativeSystemInfo:=GetProcAddress(Kernel32Handle,'GetNativeSystemInfo');
if Assigned(IsWow64Process) then
begin
IsWow64Process(GetCurrentProcess,isWoW64);
Result:=isWoW64 and Assigned(GetNativeSystemInfo);
if Result then
begin
GetNativeSystemInfo(SystemInfo);
Result:=(SystemInfo.wProcessorArchitecture=PROCESSOR_ARCHITECTURE_AMD64)or
(SystemInfo.wProcessorArchitecture=PROCESSOR_ARCHITECTURE_IA64);
end;
end
else
Result:=False;
end
else
Result:=False;
end;
function TForm3.GetIEVersionStr: string; //获取IE版本
var
Reg: TRegistry; // registry access object
begin
Result := '';
Reg := TRegistry.Create;
try
Reg.RootKey := Windows.HKEY_LOCAL_MACHINE;
if Reg.OpenKeyReadOnly('Software\Microsoft\Internet Explorer') then
begin
//这儿新版本IE的取值位置不同所以要判断
if Reg.ValueExists('svcVersion') then
Result := Reg.ReadString('svcVersion')
else
if Reg.ValueExists('Version') then
Result := Reg.ReadString('Version');
end;
finally
Reg.Free;
end;
end; function TForm3.WriteAppNameToReg: Boolean; //写入到注册表
var
reg:TRegistry;
sPath,sAppName:String;
Sver:string;
lenver:Integer;
begin
Result:=True;
reg:=TRegistry.Create;
try
reg.RootKey:=HKEY_LOCAL_MACHINE;
sPath:='SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION';
if isWin64 then
sPath:='SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION';
if reg.OpenKey(sPath,True) then
begin
sAppName:=ExtractFileName(Application.ExeName);
Sver:=GetIEVersionStr;
lenver:=StrToInt( Copy(Sver,1,Pos('.',Sver)-1) );
if lenver<=7 then
reg.WriteInteger(sAppName,7000)
else
if lenver=8 then
begin
reg.WriteInteger(sAppName,8000)
end
else
if lenver=9 then
begin
reg.WriteInteger(sAppName,9000)
end
else
if lenver=10 then
begin
reg.WriteInteger(sAppName,10000)
end
else
if lenver=11 then
begin
reg.WriteInteger(sAppName,11001)
end;
end;
reg.CloseKey; finally
FreeAndNil(reg);
end;
end;
procedure TForm3.FormCreate(Sender: TObject);
begin
WriteAppNameToReg;
end;
Delphi WebBrowser内核版本修改D7的更多相关文章
- 调整WebBrowser的默认浏览器内核版本
原文出自:https://my.oschina.net/Tsybius2014/blog/492107 注:这个是写.net控件,其实delphi是一样的.作者已经写的比较全面了,我只是做了一点修改 ...
- 调整Winfrom控件WebBrowser的默认浏览器内核版本
一.问题解析: 今天在调试程序的时候,需要使用C#的客户端远程登录一个Web页面,用到了WebBrowser控件.但是却发现了一件很神奇的事情:当前浏览器使用的内核,可以通过访问下面这个网站获取:ht ...
- winfrom设置webBrowser框架默认的IE内核版本
要实现设置webBrowser框架默认的IE内核版本的功能需要三个方法 1:修改注册表信息来兼容当前程序 /// <summary> /// 修改注册表信息来兼容当前程序 /// /// ...
- Winfrom 中完美设置webbrowser控件内核版本
前言 .NET 版本更新了一代又一代,winform中的webbrowser控件的IE内核版本却始终用的IE7,好多网站都对IE7已经不支持.webbrowser这个控件就显得有些鸡肋,经过查找大佬门 ...
- 4. sudo,PATH环境变量,修改字符集,ntpserver,加大文件描述符,隐藏内核版本,锁定关键系统文件
1 命令: visudo 98gg 98行 yy 复制当前行 p ...
- CentOS7 如何修改 内核版本
1. 参考blog http://www.mamicode.com/info-detail-1758066.html https://www.cnblogs.com/sexiaoshuai/p/839 ...
- WebBrowser内核指定
一.背景 这几天在维护公司的一个项目,嗯…到现在七八年没人动过了(也是老古董了),都说N年前的代码碰不得 处处是坑 不能挖坑还得一步一步的填坑,恰好今天就填了一坑 此处作为记录 供以后翻阅,对代码除了 ...
- delphi WebBrowser的使用方法详解(五)-难点释疑
网页代码:<SELECT id=fy onchange=TouchRefresh(1) name=fy> <OPTION selected value=15>每頁顯示15筆&l ...
- 设置WebBrowser内核渲染模式
前不久开发一个项目,是采用WebBrowser作为外壳,加载网页,由于网页是采用html5来进行开发的,当通过WebBrowser加载网页后,html5中的特性 都无法正常显示,而通过ie浏览器打开时 ...
- delphi WebBrowser控件上网页验证码图片识别教程(一)
步骤一:获取网页中验证码图片的url地址 在delphi中加入一个BitBtn和一个memo以及WebBrowser控件实现网页中验证码图片的url地址的获取 程序如下:procedure TForm ...
随机推荐
- COCI 2024/2025 #3
T1 P11474 [COCI 2024/2025 #3] 公交车 / Autobus 愤怒,从红升橙足以说明其恶心,考场上调了半小时才过. 这道题的车能够开 \(24\) 小时,并且他能从前一天开到 ...
- 零基础IM开发入门(四):什么是IM系统的消息时序一致性?
本文引用了沈剑<如何保证IM实时消息的"时序性"与"一致性"?>一文的图片和内容(由于太懒,图没重新画),原文链接在文末. 1.引言 本文接上篇&l ...
- 理解IM消息“可靠性”和“一致性”问题,以及解决方案探讨
本文作者"商文默",本次有修订和改动. 1.写在前面 即时通讯网整理的大量IM技术文章中(见本文末"参考资料"一节),有关消息可靠性和一致性问题的文章占了很大比 ...
- 整理ML&AI学习路径图
干货分享: 下面给出一个笔者自己整理的GitHub仓库:https://github.com/isLinXu/awesome-road-map 里面包含了一些可供参考的学习路径和思维导图,并整理微软. ...
- snpEff安装
下载安装包: wget http://sourceforge.net/projects/snpeff/files/snpEff_v3_6_core.zip 解压安装包: unzip snpEff_v3 ...
- MySQL-扩展
1.行转列 源数据: 目标数据: 数据准备 -- 建表插入数据 drop table if exists time_temp; create table if not exists time_temp ...
- Zookeeper的原理和架构设计,以及应用场景
什么是 Zookeeper Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如: 统一命名服务 状态同步服务 集群 ...
- superset 1.3 hello world 开发实录
参考网址: https://superset.apache.org/docs/installation/building-custom-viz-plugins 实际操作: 因为内容是从hub上下载的: ...
- 普通人也能轻松掌握的20个DeepSeek高频提示词(2025版)
一.基础原则 1️⃣ 说人话最重要 "不用专业术语,就像和朋友聊天一样描述需求". ️ 错误示范:"请用SWOT分析法输出新能源汽车行业报告". 正确示范:&q ...
- 【忍者算法】从十字路口相遇到链表交点:探索相交链表问题|LeetCode第160题 相交链表
从十字路口相遇到链表交点:探索相交链表问题 生活中的相遇问题 想象两个人从不同的地方出发,最后在一个十字路口相遇.他们可能走过不同长度的路程,但最终会在同一个点汇合.这就很像我们今天要讨论的相交链表问 ...