Web 在InnoSetup脚本中实现网页插件

Web 在InnoSetup脚本中实现网页插件,web,inno-setup,Web,Inno Setup,我尝试实现Tlama网页插件()。在我的inno设置中,我使用unicode inno版本,但没有成功 我接受以下按摩: 这是我的密码- [Setup] ... [Files] Source:"WebBrowser.dll"; Flags: dontcopy [Code] const EVENT_BEFORE_NAVIGATE = 1; var CustomPage: TWizardPage; type TWebBrowserEventProc = procedure(Even

我尝试实现Tlama网页插件()。在我的inno设置中,我使用unicode inno版本,但没有成功 我接受以下按摩:

这是我的密码-

[Setup]
...
[Files]
Source:"WebBrowser.dll"; Flags: dontcopy

[Code]
const
  EVENT_BEFORE_NAVIGATE = 1;

var
  CustomPage: TWizardPage;

type
  TWebBrowserEventProc = procedure(EventCode: Integer; URL: WideString);

procedure CreateWebBrowser(ParentWnd: HWND; Left, Top, Width, Height: Integer; 
  CallbackProc: TWebBrowserEventProc);
  external 'CreateWebBrowser@files:webbrowser.dll stdcall';
procedure DestroyWebBrowser;
  external 'DestroyWebBrowser@files:webbrowser.dll stdcall';
procedure ShowWebBrowser(Visible: Boolean);
  external 'ShowWebBrowser@files:webbrowser.dll stdcall';
procedure NavigateWebBrowser(URL: WideString);
  external 'NavigateWebBrowser@files:webbrowser.dll stdcall';

procedure OnWebBrowserEvent(EventCode: Integer; URL: WideString); 
begin
  if EventCode = EVENT_BEFORE_NAVIGATE then
    MsgBox(URL, mbInformation, MB_OK);
end;

procedure InitializeWizard;
begin
  CustomPage := CreateCustomPage(wpWelcome, 'Web Browser Page', 
    'This page contains web browser');
  CreateWebBrowser(WizardForm.InnerPage.Handle, 0, WizardForm.Bevel1.Top, 
    WizardForm.InnerPage.ClientWidth, WizardForm.InnerPage.ClientHeight - WizardForm.Bevel1.Top,
    @OnWebBrowserEvent);
  NavigateWebBrowser('http://www.google.com');
end;

procedure DeinitializeSetup;
begin
  DestroyWebBrowser;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  ShowWebBrowser(CurPageID = CustomPage.ID);
end;

请在这方面帮助我,谢谢

您可以使用另一种解决方案(由日本dvp制造)与

博客地址:

请在此下载:


Example.iss

;重新工具
; http://restools.hanzify.org
; 插件名:webctrl.dll
; 插件功能:网络连接检测,创建网页页面。
; 插件大小:9KB
; V2增强操作函数,可以同时创建多达 256个 网状物窗口。
; V2例子中演示了建立一个小型浏览器以体现该版本中的函数如何使用。比起 V1重点在于能同时创建多个 网状物窗口。
; V2.1删除 InitWebCtrl和 联合国函数, 增加 FreeAllWebWnd。改善某些情况下不能卸载插件的问题.
[设置]
AppName=我的应用程序
AppVersion=1.5
DefaultDirName={pf}\My Application
OutputDir=userdocs:Inno设置示例输出
[档案]
来源:“webctrl.dll”;标志:dontcopy
资料来源:“file.htm”;标志:dontcopy
来源:“wizard.htm”;标志:dontcopy
资料来源:“1.gif”;标志:dontcopy
资料来源:“2.gif”;标志:dontcopy
资料来源:“3.gif”;标志:dontcopy
[守则]
函数GetSystemMetrics(nIndex:Integer):整数;外部的GetSystemMetrics@user32.dllstdcall';
函数GetWindowLong(Wnd:HWnd;Index:Integer):Longint;外部的GetWindowLongA@user32.dllstdcall';
函数SetWindowLong(Wnd:HWnd;索引:整数;NewLong:Longint):Longint;外部的SetWindowLongA@user32.dllstdcall';
////////////////////////////////////////////////////////////////////////////////////
// 检查网络连接是否正常
//lpszURL:网址,如果这里设置为空网址,检测将会简单的检查网络状态,返回状态标志
//LPDW状态:状态标志,以下是标志值的解释
// 注意:当不用网址来检测网络连接时,只是检查当前是否符合网络连接的条件,但是并不等于
//       能正常连接 互联网但是这种检测方式相当迅速,如果使用网址连接测试,如果网
//       络处于正常连接,检查速度也相当快,但是如果非正常,那么将会有一点时间延迟,因
//       为实际的连接测试有一个超时的限制来判断是否能够连接。但是这种检测方式是最直接
//       的,并能确实知道是否能够连接网络,所以你按照实际要求来选择检测方式。
//
//得到的 lpdwState返回值可能是以下值的一个或几个值之和:
//互联网连接状态:$00000001连接状态;
//INTERNET\u状态\u已断开连接:$00000002非连接状态(和 INTERNET\u状态\u已连接对应);
//互联网状态用户断开连接:$00000010用户请求的非连接状态
//互联网状态空闲:$00000100连接状态,并且空闲
//互联网状态繁忙:$00000200连接状态,正在响应连接请求
函数CheckConnectState(lpsURL:PChar;var lpdwState:dword):布尔值;外部'checkconnectstate@files:webctrl.dll stdcall';
// 创建 网状物窗口
函数NewWebWnd(hWndParent:HWND;X,Y,nWidth,nHeight:Integer):HWND;外部'newwebwnd@files:webctrl.dll stdcall';
// 释放 网状物窗口
函数FreeWebWnd(hWndWeb:HWND):布尔值;外部'freewebwnd@files:webctrl.dll stdcall';
// 释放所有 网状物窗口, 此函数对于卸载插件很重要, 必须在结束安装之前调用才能顺利卸载插件.
函数FreeAllWebWnd():布尔值;外部'freeallwebwnd@files:webctrl.dll stdcall';
// 设置 网状物窗口的父窗口
函数WebWndSetParent(hWndWeb:HWND;hWndParent:HWND):布尔值;外部'webwndsetparent@files:webctrl.dll stdcall';
// 设置 网状物窗口的位置大小
函数WebWndSetBounds(hWndWeb:HWND;X,Y,nWidth,nHeight:Integer):布尔值;外部'webwndsetbounds@files:webctrl.dll stdcall';
// 显示 HTML网页
函数DisplayHTMLPage(hWndWeb:HWND;lpsURL:PChar):布尔值;外部'displayhtmlpage@files:webctrl.dll stdcall';/;
// 显示 HTML字符串
函数显示HTMLSTR(hWndWeb:HWND;lpsHtmlText:PChar):布尔值;外部'displayhtmlstr@files:webctrl.dll stdcall';
//网页面 动作
函数WebPageAction(hWndWeb:HWND;action:DWord):布尔值;外部'webpageaction@files:webctrl.dll stdcall';
常数
SM_CXSCREEN=0;
SM_CYSCREEN=1;
WS_EX_客户群=200美元;
GWL_EXSTYLE=-20;
网页_GOBACK=0;
网页_GOFORWARD=1;
网页_GOHOME=2;
网页搜索=3;
网页_刷新=4;
网页_STOP=5;
变量
UrlPage、HtmlPage、HtmlTextPage:TWizardPage;
WebHWND1、WebHWND2、WebHWND3、WebHWND4:HWND;
WebHWND_浏览器:HWND;
表单浏览器:TForm;
AddrEdit:TNewEdit;
GoBtn:TNewButton;
函数InitializeSetup():Boolean;
开始
WebHWND1:=0;
WebHWND2:=0;
WebHWND3:=0;
WebHWND4:=0;
结果:=真;
终止
过程去初始化设置();
开始
隐藏;
FreeAllWebWnd;
终止
程序GoBackBtnOnClick(发送方:TObject);
开始
WebPageAction(WebHWND_浏览器、网页回退);
终止
程序GoForwardBtnOnClick(发送方:ToObject);
开始
WebPageAction(WebHWND_浏览器,网页前进);
终止
程序StopBtnOnClick(发送方:TObject);
开始
webgeAction(WebHWND\u浏览器、网页停止);
终止
程序刷新btnonclick(发送方:TObject);
开始
WebPageAction(WebHWND_浏览器,网页刷新);
终止
过程HomeBtnOnClick(发送方:ToObject);
开始
WebPageAction(网页浏览器、网页主页);
终止
程序GoBtnOnClick(发送方:TObject);
开始
显示HTMLPage(WebHWND_浏览器,AddrEdit.Text);
终止
过程BrowserFormResize(发送方:ToObject);
变量
W:整数;
开始
WebWndSetBounds(WebHWND_浏览器,0,ScaleY(35),Form_浏览器.ClientWidth,
Form_Browser.ClientHeight-ScaleY(35));
W:=Form_.Width-ScaleX(285);

如果我希望没有人会使用它:)好吧,但是我不能在我的Windows7 64位系统上用Inno Setup 5.5.5(u)复制它(最近的版本)