zoukankan      html  css  js  c++  java
  • 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('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 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:='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) );
              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;
  • 相关阅读:
    16进制与10进制
    npm模块管理器
    Vue2+VueRouter2+webpack 构建项目实战(四)接通api,先渲染个列表
    cross-env使用笔记
    webpack 运行提示“The ‘mode‘ option has not been set”的原因和解决方法
    cnpm install -S 与cnpm install -D (dependencies和devDependencies的区别)
    Webpack基础学习
    webpack入门——webpack的安装与使用
    npm init 之package.json
    入门 Webpack,看这篇就够了
  • 原文地址:https://www.cnblogs.com/windson/p/12521317.html
Copyright © 2011-2022 走看看