delphi调用exe文件 XE WebBrowser调用资源文件

12795人阅读
控制WebBrowser实际上就是控制IE,最简单的方法就是执行javascript或vbscript,省去了接口的转换。如何执行脚本?以前我一直用mshtml中IHTMLWindow2接口的execScript()方法,在Delphi中需要uses MSHTML单元:uses&MSHTML;procedure&TForm1.Button1Click(Sender:&TObject);begin&&(WebBrowser1.Document&as&IHTMLDocument2).parentWindow.execScript(&&&&'alert("hello");',&'javascript')end;在CSharp中则需要在工程添加Micrsoft.mshtml,后来得到在地址栏执行脚本的启发。用WebBrowser的Navigate()方法更简单:procedure&TForm1.Button1Click(Sender:&TObject);begin&&WebBrowser1.Navigate('javascript:alert("hello");')end;省去了添加引用的麻烦。如何调用外部的方法?先看一段在IE中添加收藏夹的代码:window.external.AddFavorite(url,&title);脚本中window.external对象就是一个外部对象,AddFavorite()则是这个外部对象的方法!查了一下资料,原来可以通过IDocHostUIHandler接口的GetExternal()方法,指定脚本的外部对象。在CSharp中更简单,有WebBrowser.ObjectForScripting属性直接对应window.external,参考如下代码:[ComVisible(true)]&public&partial&class&Form1&:&Form{&&&&public&Form1()&&&&{&&&&&&&&InitializeComponent();&&&&}&&&&private&void&Form1_Load(object&sender,&EventArgs&e)&&&&{&&&&&&&&webBrowser1.DocumentText&=&@"&&&&&&&&&&&&&html&&&&&&&&&&&&&&&&&&input&type=""button""&value=""测试""&onclick=""alert('Zswang&路过');""&&&&&&&&&&&&&&/html&&&&&&&&&&&&&";&&&&}&&&&public&void&alertMessage(string&s)&&&&{&&&&&&&&MessageBox.Show(s,&"囧");&&&&}&&&&private&void&webBrowser1_DocumentCompleted(object&sender,&WebBrowserDocumentCompletedEventArgs&e)&&&&{&&&&&&&&webBrowser1.Navigate(@"javascript:&&&&&&&&&&&&function&alert(str)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&window.external.alertMessage(str);&&&&&&&&&&&&}");&&&&&&&&webBrowser1.ObjectForScripting&=&this;&&&&}}
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:539214次
积分:8897
积分:8897
排名:第1282名
原创:199篇
评论:1602条
(2)(1)(1)(2)(3)(1)(1)(1)(2)(3)(2)(6)(22)(1)(2)(1)(1)(1)(1)(1)(2)(24)(25)(3)(9)(2)(2)(2)(2)(2)(3)(4)(3)(2)(1)(4)(1)(5)(6)(11)(8)(15)(1)(3)(1)(2)(3)delphi制作资源文件和释放资源文件的方法
首先先制作资源文件如何制作呢?
AAA EXEFILE AAA.exe&&&&& 把这段文字复制到个记事本里保存为AAA.rc
同理:bbb dllfile bbb.dll 写入bbb.rc
AAA为在程序里调用资源文件的名字&&&&& 就是给资源文件起个名字在程序里调用
EXEFILE&&&&& 为文件类型&&&&& 意思是exe文件
AAA.EXE&&&&& 为你要做成资源的exe文件
在写个批处理文件内容为 path=C:\Program Files\Borland\Delphi7\B&&&&& Brcc32 AAA.rc
第一行是你delphi的安装目录下的bin目录下的Brcc32.exe的位置&&&&& 因为要用brcc32.exe编译
第二行的AAA.rc为 你刚才写的rc文件的文件名
把以上两个文件和你要做成资源文件的exe放在一个目录下&&&&& 执行批处理&
这时候会多出&&&&& AAA.res
我们到delphi中新建个application&&&&& 往上面放上一个按钮&&&&& 点那个按钮的时候释放资源文件
并且运行程序&&&&&&&&& 要把AAA.res&&&&& 放到工程目录下&&&&& 就是你这个程序保存的地方!
unit Unit1;
uses&&&&& Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,&&&&& Dialogs, StdCtrls, Buttons,&&&&&&& //shellapi引用&&&&& api函数来运行程序
type&&&&& TForm1 = class(TForm)&&&&&&& BitBtn1: TBitB&&&&&&& procedure BitBtn1Click(Sender: TObject);&&&&& private&&&&&&& { Private declarations }&&&&& public&&&&&&& { Public declarations }&&&&&
var&&&&& Form1: TForm1;
implementation
{$R *.dfm}{$R 'AAA.RES'}&&&&&&& //这里调用得写上你的RES文件的名字
procedure ExtractRes(ResType, ResName, ResNewName : String);varRes : TResourceSbeginRes := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));Res.SavetoFile(ResNewName);Res.F&&&&&&&&&&&&&&&&&&&&&&&&&&& //这个方法意思是释放资源文件&&&&& 有三个参数 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //一个资源类型&&&&& 2 资源名字&&&&& 生成资源的名字
procedure TForm1.BitBtn1Click(Sender: TObject);begin&&&&&&& ExtractRes('EXEFILE', 'AAA', 'AAA.exe');&&&&& //这里调用函数释放资源
&&&&&&& showmessage('释放成功');&&&&&&& // 弹出个对话框 可以不写 没啥用 只是提示一下&&&&&&& sleep(1000);&&&&&&& //让程序 休眠1秒&&&&&&& ShellExecute(0, nil, 'AAA.exe',nil, nil,sw_show);&&&&& //运行程序 带的四个参数不用管他 //如果要是想隐藏运行把最后那个参数改为&&&&& SW_HIDE 就OK了&
阅读(...) 评论() &求助 delphi xe6 7 webbrowser android 不加载https
[问题点数:40分]
求助 delphi xe6 7 webbrowser android 不加载https
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2014年10月 Delphi大版内专家分月排行榜第二2014年9月 Delphi大版内专家分月排行榜第二
2014年10月 Delphi大版内专家分月排行榜第二2014年9月 Delphi大版内专家分月排行榜第二
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。您的位置:
本文网址:
栏目分类??????????????????????????????????特别关注热门排行推荐信息相关信息
页面执行时间0.3438秒 查询数据库20次}

我要回帖

更多关于 delphi 资源文件制作 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信