zoukankan      html  css  js  c++  java
  • Delphi WebBrowser内核版本修改

    WebBrowser的默认内核是IE的

     

    改变内核版本的操作:

    1、在开始菜单内输入“regedit.exe”,进入注册表编辑器

    2、找到注册表项:HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerMAINFeatureControlFEATURE_BROWSER_EMULATION

    在右侧空白区域内单击鼠标右键,点击[新建]→[DWORD(32-位)值]

    新建的项取名为 你的执行文件名称(例如:MyApplication.exe),编辑值时,选择基数“十进制”,填写数值数据,这里填写11000(IE11)

     

     

    不同IE版本所对应的DWORD值:

     

    原文:https://www.cnblogs.com/doscanner/p/5611434.html

    有时间再补充博客,写一个Delphi 版的自动修改代码,以下代码适合Delphi7

     

    function TFrom1.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:='SOFTWAREMicrosoftInternet ExplorerMAINFeatureControlFEATURE_BROWSER_EMULATION';
            if isWin64 then
            sPath:='SOFTWAREWow6432NodeMicrosoftInternet ExplorerMAINFeatureControlFEATURE_BROWSER_EMULATION';
            if reg.OpenKey(sPath,True) then
            begin
             sAppName:=ExtractFileName(Application.ExeName);
             Sver:=GetIEVersionStr;
          lenver:=StrToInt( Copy(Sver,1,Pos('.',Sver)-1) ); //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; function TFrom1.GetIEVersionStr: string; //获取IE版本 var Reg: TRegistry; // registry access object begin Result := ''; Reg := TRegistry.Create; try Reg.RootKey := Windows.HKEY_LOCAL_MACHINE; if Reg.OpenKeyReadOnly('SoftwareMicrosoftInternet 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 TForm1.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;

      

      

     创建时间:2020.03.03  更新时间:

  • 相关阅读:
    Android之遍历SD卡所有文件显示在ListView
    Android之ViewPager
    控制ViewPager的切换速度
    Android中显示sd卡的图片和视频
    java中主线程等待所有子线程结束
    Android之ViewFlipper实现图片切换
    Android闹钟服务详解
    Gradle基本操作入手
    设计模式
    【CSON原创】 基于HTML5的小球物理测试系统
  • 原文地址:https://www.cnblogs.com/guorongtao/p/12400890.html
Copyright © 2011-2022 走看看