procedure TregedtIE.FormCreate(Sender: TObject);  
begin  
  WriteAppNameToReg;  
  WebBrowser1.Navigate('C:\a.html');  
end;  
{--}  
{需要注意是GetNativeSystemInfo 函数从Windows XP 开始才有, 
 而 IsWow64Process 函数从 Windows XP with SP2 以及 Windows Server 2003 with SP1 开始才有。 
 所以使用该函数的时候最好用GetProcAddress 。 
}  
function TregedtIE.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 = ;  
  PROCESSOR_ARCHITECTURE_IA64 = ;  
begin  
  Kernel32Handle := GetModuleHandle('KERNEL32.DLL');  
  if Kernel32Handle =  then  
    Kernel32Handle := LoadLibrary('KERNEL32.DLL');  
  if Kernel32Handle <>  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 TregedtIE.WriteAppNameToReg: Boolean;  
var  
  reg :TRegistry;  
  sPath,sAppName:String;  
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);  
     if not reg.ValueExists(sAppName) then  
        reg.WriteInteger(sAppName,);  
    end;  
    reg.CloseKey;  
  finally  
    FreeAndNil(reg);  
  end;  
end;  
{--}  
procedure TregedtIE.WebBrowser1DocumentComplete(ASender: TObject;  
  const pDisp: IDispatch; var URL: OleVariant);  
begin  
  WebBrowser1.OleObject.Document.Body.Scroll := 'no';  
  WebBrowser1.OleObject.Document.Body.style.border := 'none';  
  webbrowser1.OleObject.Document.Body.Style.margin := '0px';  
end;  

http://blog.csdn.net/wensibo/article/details/25971863

【转】解决Delphi WebBrowser 无法调用当前浏览器的版本的更多相关文章

  1. Delphi WebBrowser 无法调用当前浏览器的版本 --转

    出自:http://blog.csdn.net/wensibo/article/details/25971863 procedure TregedtIE.FormCreate(Sender: TObj ...

  2. javascript 函数节流 throttle 解决函数被频繁调用、浏览器卡顿的问题

    * 使用setTimeout index.html <html> <head> <meta charset="UTF-8"> <title ...

  3. delphi WebBrowser的使用方法详解(五)-难点释疑

    网页代码:<SELECT id=fy onchange=TouchRefresh(1) name=fy> <OPTION selected value=15>每頁顯示15筆&l ...

  4. <总结>delphi WebBrowser控件的使用中出现的bug

    Delphi WebBrowser控件的使用中出现的bug:  1.WebBrowser.Visible=false:Visible属性不能使WebBrowser控件不可见,暂时用 WebBrowse ...

  5. Delphi WebBrowser控件的使用(大全 good)

    Delphi WebBrowser控件的使用 WebBrowser控件属性:1.Application      如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDis ...

  6. delphi webbrowser用法集锦

    delphi webbrowser用法集锦 (2012-05-13 08:29:00) 标签: it 分类: 软件_Software WebBrowser1.GoHome; //到浏览器默认主页 We ...

  7. 完美解决C#Webbrowser控件设置Cookie问题

    完美解决C#Webbrowser控件设置Cookie问题由于个人项目需求,需要把从抓包里面的Cookie数据写入到webbrowser空控件里,经过百度白百般折腾,结果还是失败,搜索到的答案基本上都是 ...

  8. Delphi Dll 动态调用例子(3)-仔细看一下

    http://blog.163.com/bxf_0011/blog/static/35420330200952075114318/ Delphi 动态链接库的动态和静态调用 为了让人能快速的理解 静态 ...

  9. 在Delphi中静态调用DLL

    在Delphi中静态调用DLL top 调用一个DLL比写一个DLL要容易一些.首先给大家介绍的是静态调用方法,稍后将介绍动态调用方法,并就两种方法做一个比较.同样的,我们先举一个静态调用的例子. u ...

随机推荐

  1. ArcGIS Server,rest路径输入要素json 格式描述

    以下内容只测试了简单线, 在ArcGIS Server 的rest路径下可以对服务进行操作,如Query等,这些操作可以输入json 格式要素描述或运行得到即输出json格式要素描述. 如博客:htt ...

  2. ASP.Net一键自动化更新代码、编译、合并dll、压缩js、css、混淆dll、zip打包、发布到测试环境的bat批处理

    不废话,直接代码: D: cd D:\src\testproj\PrecompiledWeb svn revert ../ -R svn update .. rmdir BS /S /Q C:\Win ...

  3. snmp ubuntu/centos--

    软件安装 切换到系统管理员帐户 安装snmp确认snmp代理已安装rpm -q net-snmp如果未安装,安装snmpyum install net-snmp 设置开机自动运行snmp/sbin/c ...

  4. UML序列图总结(Loop、Opt、Par和Alt)

    序列图主要用于展示对象之间交互的顺序. 序列图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存在时,角色用一条虚线 ...

  5. jquery的each()详细介绍

    each()方法能使DOM循环结构简洁,不容易出错.each()函数封装了十分强大的遍历功能,使用也很方便,它可以遍历一维数组.多维数组.DOM, JSON 等等在javaScript开发过程中使用$ ...

  6. iOS duplicate symbol 变量 in 类名 报错

    该错误信息是我在一个.h文件里申明了公共变量,然后在其他类里重复使用. Build Settings ->No Common Blocks默认为YES,编译器就报错了,需要修改Build Set ...

  7. LintCode Longest Common Subsequence

    原题链接在这里:http://www.lintcode.com/en/problem/longest-common-subsequence/ 题目: Given two strings, find t ...

  8. DWR实现扫一扫登录功能

    前言 <DWR实现后台推送消息到Web页面>一文中已对DWR作了简介,并列出了集成步骤.本文中再一次使用到DWR,用以实现扫一扫登录功能. 业务场景 web端首页点击"登陆&qu ...

  9. 简单的js菜单

    <!DOCTYPE html> <html> <head> <title>hovertree</title><base target= ...

  10. 跟着思维导图学习javascript

    1.javascript 变量 2.javascript 运算符 3.javascript 数组 4.javascript 流程语句 5.javascript字符串函数 6.javascript 函数 ...