DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: xiao2024
今日帖子: 16
在线用户: 13
导航: 论坛 -> Web应用开发 斑竹:bodies  
作者:
男 vmao (毛小毛) ★☆☆☆☆ -
盒子活跃会员
2016/4/10 21:07:07
标题:
EmbeddedWB如何强制使用最新IE内核? 浏览:3008
加入我的收藏
楼主: 我做的一个管理类数据库应用程序。另外有一个用angularjs做得购物网站。老板突发奇想,在我的应用程序内嵌入这个购物网站。

我满以为简单的,就嵌入一个EmbeddedWB。

结果发现,EmbeddedWB不支持angularjs网站,但是浏览器打开又是可以的,于是上网查询,发现EmbeddedWB是用IE7渲染的,哪怕你客户端装了最新版本的IE,他照样用IE7内核,矢志不渝。网上的方案是修改注册表,指定特定的IE内核。

但是我这个程序是绿色程序,而且Win7以后修改注册表不是那么容易的事情,很多客户都是域管理的,又要麻烦IT人员一个一个去修改,实在不是个好方案。

我整个人都不好了,各位家人有办法么?有没有什么办法强制EmbeddedWB使用最新内核?用其它浏览器内核又要强制安装相应的浏览器,IE那么通用。
----------------------------------------------
-
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2016/4/10 21:18:05
1楼: DCEF3最佳选择。
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 vmao (毛小毛) ★☆☆☆☆ -
盒子活跃会员
2016/4/10 21:43:46
2楼: 找到方法了,在页头加入
<meta http-equiv="X-UA-Compatible" content="IE=8" />
指定IE版本,有人说下面这个也可以
<meta http-equiv="X-UA-Compatible" content="IE=edge">
实际不行,原因不深究了,我的问题解决了。

DCEF3应该还要装谷歌浏览器吧,这个不好,毕竟IE是自带的。
----------------------------------------------
-
作者:
男 lsuper (lsuper) ★☆☆☆☆ -
盒子活跃会员
2016/4/10 22:19:45
3楼: DCEF3 绿色的,唯一不爽体积大了些 ~
----------------------------------------------
-
作者:
男 xlonger (xlonger) ★☆☆☆☆ -
普通会员
2016/4/11 8:02:14
4楼: dcef3  原始控件 有个  无法打开post请求网页的问题。楼上大侠研究过吗?
----------------------------------------------
我打的是酱油,而不是别的什么油。
我灌的是口水,而不是别的什么水。
我聊的折腾不是那个不折腾的折腾。
我说的阿娇不是那个邓玉娇的阿娇。
3个代表,6个为什么,9个肠胃炎。
D性强的领导干部都不喜欢热比娅。
我特别要讲的是,屁民网黄色论坛是我经常上网必选的 网站之一
作者:
男 bigboy2050 (bigboy2050) ★☆☆☆☆ -
普通会员
2016/4/29 14:09:17
5楼: 支持楼主大侠。。。
----------------------------------------------
kittyapp
作者:
男 crystalmoon (crystalmoon) ★☆☆☆☆ -
盒子活跃会员
2016/4/29 16:12:57
6楼: 呵呵,你能改对方的网页??
不能的话就只能老老实实的去整注册表吧。。。除了Win10,以下的版本添加版本兼容设置不需要管理员权限。。。。
----------------------------------------------
-
作者:
男 vmao (毛小毛) ★☆☆☆☆ -
盒子活跃会员
2016/4/30 22:23:52
7楼: 幸好这个网站也是我公司产品,要不然只能哭昏在厕所了。
----------------------------------------------
-
作者:
男 zhqian (无为) ★☆☆☆☆ -
普通会员
2016/11/13 12:37:11
8楼: 在页头加入
<meta http-equiv="X-UA-Compatible" content="IE=8" />

 没有别的办法了么
----------------------------------------------
XE7发布会视频:http://i.youku.com/u/UMzYzNTkyNTI0/videos ;FireDac/EMS-[Delphi]技术群 257779952 appmethod[移动开发] 194191706
作者:
男 liang1zhou (Mark zql) ★☆☆☆☆ -
普通会员
2016/11/13 16:27:43
9楼: 改注册表可以实现的
----------------------------------------------
-
作者:
男 zhqian (无为) ★☆☆☆☆ -
普通会员
2016/11/13 23:45:26
10楼: 改注册表可以实现的
能指点一下吗,好像 WebBrowser1里面的方法行不通
----------------------------------------------
XE7发布会视频:http://i.youku.com/u/UMzYzNTkyNTI0/videos ;FireDac/EMS-[Delphi]技术群 257779952 appmethod[移动开发] 194191706
作者:
男 zhqian (无为) ★☆☆☆☆ -
普通会员
2016/11/14 1:23:23
11楼:  function TFrmmain.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(leftstr(Sver, Pos('.',Sver)-1));
         // if not reg.ValueExists(sAppName)then
          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;


这个是使用 WebBrowser的代码,能支持到IE11
----------------------------------------------
XE7发布会视频:http://i.youku.com/u/UMzYzNTkyNTI0/videos ;FireDac/EMS-[Delphi]技术群 257779952 appmethod[移动开发] 194191706
作者:
男 crystalmoon (crystalmoon) ★☆☆☆☆ -
盒子活跃会员
2016/11/14 10:15:33
12楼: 楼上,你这样写是可以,但还有一占要注意,Win10需要程序具有管理员权限,不然可能无法写入。。。。可以试一下。。。我原来在Win8上写的类似代码,正常写入,但到Win10就不行了。。。需要第一次管理员权限一下(写入),第二次就不用写了,直接运行就可以,后来还做了一个提示功能(如果没写入就报)。。。另外,你这样写,只针对Win32程序,没考虑Win64程序的问题吧。。。
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2016/11/14 10:18:31
13楼: if isWin64 就是 win32 exe考虑 win64 下运行。
如果你是 64 exe ,那么去掉这个 iswin64 就行了。


        sPath:='SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION';
{$IFDEF WIN32}
        if isWin64 then
        sPath:='SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION';
{$ENDIF}

简单至极。

另外,如果你不希望你的 EXE 需求 管理员权限,那么可以另外写一个 特殊的 EXE 包含管理员权限的请求,只做这些 信息的配置功能,你的 主 EXE 调用就可以了。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 crystalmoon (crystalmoon) ★☆☆☆☆ -
盒子活跃会员
2016/11/14 10:21:01
14楼: 是的,老猫,我想就是说他没有考虑到win64下面。64位程序的问题呀。他只是考虑了32位程序在不同位数系统下的情况。
其实只要考虑一个参数:
 if TurnOffWOW64Redir then
    MySamDesiredAccess := KEY_WRITE or KEY_WOW64_64KEY
  else
    MySamDesiredAccess := KEY_WRITE;
先读取程序自身的位数,然后用上面的就可以解决了。。就不用分开写两个注册项了。
另外,另一个程序调用太没意思了。。。我当时的做法是,遇到不能写入的情况,提醒用户右键用管理员权限运行一次程序就可以了。
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2016/11/14 10:34:08
15楼: 楼上的代码好像最新版本的 DELPHI 内部就有。
也就是说,新版本的 DELPHI 不需要我们考虑 WIN32 WIN64 了。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 crystalmoon (crystalmoon) ★☆☆☆☆ -
盒子活跃会员
2016/11/14 12:59:46
16楼: 是有,或者,这个本身就是系统API里带过来的东西。。。总之一话,Wow6432Node这个最好不要自己来填写。。。感兴趣的可以看一下这一篇文章:http://www.cnblogs.com/walfud/articles/2311065.html (虽然不是Delphi的)
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行70.3125毫秒 RSS