- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直致力于 Inno Setup 上的自定义页面。我有下面的示例代码示例,但是当我在我的 Inno 设置脚本编辑器上运行时,会弹出一个编译器错误。它说:“编译器错误:第 63 行:第 3 列:未知标识符“authentication_form_CreatePage”。我看不出有什么错误。但是有一个。如果有人能看到它并知道它,你能帮我解决这个问题吗?
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "NewSampleSetup"
#define MyAppVersion "1.0"
#define MyAppPublisher "Example"
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "BarChartExample2.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{8226770F-1270-434F-B53E-5539E78AD05B}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
OutputDir=C:\Users\Intern1\Documents\Inno Setup Examples Output
OutputBaseFilename=Setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: " {cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "C:\Users\stajyer1\Documents\Visual Studio 2012\Projects\BarChartExample2\BarChartExample2\bin\Debug\BarChartExample2.exe"; DestDir: " {app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram, {#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
[CustomMessages]
authentication_form_Caption=SQL Server Database Setup
authentication_form_Description=Choose SQL Server database you will be using (ask your administrator about its parameters)
authentication_form_Label1_Caption0=Server Name:
authentication_form_Label2_Caption0=Enter Path to SQL Server (e.g. .\SQLEXPRESS; DEVSERVER)
authentication_form_Label3_Caption0=User name:
authentication_form_Label4_Caption0=Password:
authentication_form_ServerNameEdit_Text0=-
authentication_form_WindowsRadioButton_Caption0=Use Windows Authentication
authentication_form_SqlRadioButton_Caption0=Use SQL Authentication
authentication_form_UserEdit_Text0=-
authentication_form_PasswordEdit_Text0=-
[Code]
procedure InitializeWizard();
begin
authentication_form_CreatePage(wpLicense);
end;
var
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
ServerNameEdit: TEdit;
WindowsRadioButton: TRadioButton;
SqlRadioButton: TRadioButton;
UserEdit: TEdit;
PasswordEdit: TEdit;
function authentication_form_CreatePage(PreviousPageId: Integer): Integer;
var
Page: TWizardPage;
begin
Page := CreateCustomPage(
PreviousPageId,
ExpandConstant('{cm:authentication_form_Caption}'),
ExpandConstant('{cm:authentication_form_Description}')
);
Label1 := TLabel.Create(Page);
with Label1 do
begin
Parent := Page.Surface;
Caption := ExpandConstant('{cm:authentication_form_Label1_Caption0}');
Left := ScaleX(16);
Top := ScaleY(0);
Width := ScaleX(84);
Height := ScaleY(17);
end;
Label2 := TLabel.Create(Page);
with Label2 do
begin
Parent := Page.Surface;
Caption := ExpandConstant('{cm: authentication_form_Label2_Caption0}');
Left := ScaleX(16);
Top := ScaleY(56);
Width := ScaleX(300);
Height := ScaleY(17);
end;
Label3 := TLabel.Create(Page);
with Label3 do
begin
Parent := Page.Surface;
Caption := ExpandConstant('{cm: authentication_form_Label3_Caption0}');
Left := ScaleX(56);
Top := ScaleY(136);
Width := ScaleX(70);
Height := ScaleY(17);
end;
Label4 := TLabel.Create(Page);
with Label4 do
begin
Parent := Page.Surface;
Caption := ExpandConstant('{cm: authentication_form_Label4_Caption0}');
Left := ScaleX(56);
Top := ScaleY(168);
Width := ScaleX(63);
Height := ScaleY(17);
end;
ServerNameEdit := TEdit.Create(Page);
with ServerNameEdit do
begin
Parent := Page.Surface;
Left := ScaleX(16);
Top := ScaleY(24);
Width := ScaleX(257);
Height := ScaleY(25);
TabOrder := 0;
Text := ExpandConstant('{cm: authentication_form_ServerNameEdit_Text0}');
end;
WindowsRadioButton := TRadioButton.Create(Page);
with WindowsRadioButton do
begin
Parent := Page.Surface;
Caption := ExpandConstant('{cm: authentication_form_WindowsRadioButton_Caption0}');
Left := ScaleX(16);
Top := ScaleY(88);
Width := ScaleX(225);
Height := ScaleY(17);
Checked := True;
TabOrder := 1;
TabStop := True;
end;
SqlRadioButton := TRadioButton.Create(Page);
with SqlRadioButton do
begin
Parent := Page.Surface;
Caption := ExpandConstant('{cm: authentication_form_SqlRadioButton_Caption0}');
Left := ScaleX(16);
Top := ScaleY(112);
Width := ScaleX(193);
Height := ScaleY(17);
TabOrder := 2;
end;
UserEdit := TEdit.Create(Page);
with UserEdit do
begin
Parent := Page.Surface;
Left := ScaleX(136);
Top := ScaleY(136);
Width := ScaleX(121);
Height := ScaleY(25);
TabOrder := 3;
Text := ExpandConstant('{cm: authentication_form_UserEdit_Text0}');
end;
PasswordEdit := TEdit.Create(Page);
with PasswordEdit do
begin
Parent := Page.Surface;
Left := ScaleX(136);
Top := ScaleY(168);
Width := ScaleX(121);
Height := ScaleY(25);
TabOrder := 4;
PasswordChar := '*';
Text := ExpandConstant('{cm: authentication_form_PasswordEdit_Text0}');
end;
with Page do
begin
OnNextButtonClick := @authentication_form_NextButtonClick;
end;
Result := Page.ID;
end;
function authentication_form_NextButtonClick(Page: TWizardPage): Boolean;
begin
Result := True;
if ServerNameEdit.Text <> '' then
begin
if SqlRadioButton.Checked then
begin
if UserEdit.Text = '' then
begin
MsgBox('You should enter user name', mbError, MB_OK);
Result := False;
end
else
begin
if PasswordEdit.Text = '' then
begin
MsgBox('You should enter password', mbError, MB_OK);
Result := False;
end
end
end
end
else
begin
MsgBox('You should enter path to SQL Server Database', mbError, MB_OK);
Result := False;
end;
end;
最佳答案
试试这个:
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "NewSampleSetup"
#define MyAppVersion "1.0"
#define MyAppPublisher "Example"
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "BarChartExample2.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{8226770F-1270-434F-B53E-5539E78AD05B}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
OutputDir=C:\Users\sandaa\Desktop
OutputBaseFilename=Setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: " {cm:AdditionalIcons}"; Flags: unchecked
[Files]
;Source: "C:\Users\stajyer1\Documents\Visual Studio 2012\Projects\BarChartExample2\BarChartExample2\bin\Debug\BarChartExample2.exe"; DestDir: " {app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram, {#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
[Code]
var
FirstLabel: TLabel;
SecondLabel: TLabel;
ThirdLabel: TLabel;
FourthLabel: TLabel;
ServerNameTextBox: TEdit;
WindowsRadioButton: TRadioButton;
SQLRadioButton: TRadioButton;
txtUserName: TEdit;
txtPassword: TEdit;
function AuthenticateDataPage(Page: TWizardPage): Boolean;
begin
Result :=True;
if ServerNameTextBox.Text <> '' then
begin
if SQLRadioButton.Checked then
begin
if txtUserName.Text ='' then
begin
MsgBox('You should enter user name', mbError, MB_OK);
Result :=False;
end
else
begin
if txtPassword.Text ='' then
begin
MsgBox('You should enter password', mbError, MB_OK);
Result :=False;
end
end
end
end
else
begin
MsgBox('You should enter path to SQL Server Database', mbError, MB_OK);
Result :=False;
end;
end;
function CreateDataPage(PreviousPageId: Integer): Integer;
var
Page: TWizardPage;
begin
Page :=CreateCustomPage(PreviousPageId,'SQL Server Database Setup',
'Choose SQL Server database you will be using (ask your administrator about its parameters');
FirstLabel :=TLabel.Create(Page);
with FirstLabel do
begin
Parent :=Page.Surface;
Caption :='Server Name';
Left :=ScaleX(16);
Top :=ScaleY(0);
Width :=ScaleX(84);
Height :=ScaleY(17);
end;
SecondLabel :=TLabel.Create(Page);
With SecondLabel Do
begin
Parent :=Page.Surface;
Caption :='Enter Path to SQL Server (e.g. .\SQLEXPRESS; DEVSERVER)';
Left :=ScaleX(16);
Top :=ScaleY(56);
Width :=ScaleX(300);
Height :=ScaleY(17);
end;
ThirdLabel :=TLabel.Create(Page);
with ThirdLabel do
begin
Parent :=Page.Surface;
Caption :='User name';
Left :=ScaleX(56);
Top :=ScaleY(136);
Width :=ScaleX(70);
Height :=ScaleY(17);
end;
FourthLabel :=TLabel.Create(Page);
with FourthLabel do
begin
Parent :=Page.Surface;
Caption :='Password';
Left :=ScaleX(56);
Top :=ScaleY(168);
Width :=ScaleX(63);
Height :=ScaleY(17);
end;
ServerNameTextBox :=TEdit.Create(Page);
with ServerNameTextBox do
begin
Parent :=Page.Surface;
Left :=ScaleX(16);
Top :=ScaleY(24);
Width :=ScaleX(257);
Height :=ScaleY(25);
TabOrder :=0;
Text :='';
end;
WindowsRadioButton :=TRadioButton.Create(Page);
with WindowsRadioButton do
begin
Parent :=Page.Surface;
Caption :='Use Windows Authentication';
Left :=ScaleX(16);
Top :=ScaleY(88);
Width :=ScaleX(225);
Height :=ScaleY(17);
Checked :=True;
TabOrder :=1;
TabStop :=True;
end;
SQLRadioButton :=TRadioButton.Create(Page);
with SQLRadioButton do
begin
Parent :=Page.Surface;
Caption :='Use SQL Authentication';
Left :=ScaleX(16);
Top :=ScaleY(112);
Width :=ScaleX(193);
Height :=ScaleY(17);
TabOrder :=2;
end;
txtUserName :=TEdit.Create(Page);
with txtUserName do
begin
Parent :=Page.Surface;
Left :=ScaleX(136);
Top :=ScaleY(136);
Width :=ScaleX(121);
Height :=ScaleY(25);
TabOrder :=3;
Text :='';
end;
txtPassword :=TEdit.Create(Page);
with txtPassword do
begin
Parent :=Page.Surface;
Left :=ScaleX(136);
Top :=ScaleY(168);
Width :=ScaleX(121);
Height :=ScaleY(25);
TabOrder :=4;
PasswordChar :='*';
Text :='';
end;
with Page do
begin
OnNextButtonClick :=@AuthenticateDataPage;
end;
Result :=Page.ID;
end;
procedure InitializeWizard();
begin
CreateDataPage(wpLicense);
end;
我唯一遗漏的是自定义消息。
关于installation - Inno Setup 的自定义页面向导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19181336/
是否可以获得用于 Inno Setup 安装程序的 Inno Setup 版本号? 我找不到记录的开关来返回其版本号(例如 5.5.6),而且似乎没有暴露给 Inno Setup 脚本的预定义版本常量
我有一个小但令人沮丧的问题。我为可执行文件创建了可能有快捷方式的安装程序,但如果可执行文件不在主文件夹中,可以说 MyProgram\bin\myprogram.exe 安装程序会在主程序文件夹中复制
/VERYSILENT在使用集中式软件将应用程序部署到整个组织时,Inno Setup 提供的选项非常有用,但有一些好处对我来说并不完全清楚。 特别是,在删除需要取消注册并标记为共享对象的 dll/c
我对 Inno Setup 卸载程序有疑问。我有一个 exe 文件,我想执行它来跟踪安装和卸载。该 exe 非常简单,可以向服务器发送消息。 [Files] Source: "Tracker\Loca
我正在使用Inno Setup安装和更新我的python应用程序。 更新时,安装程序不会从以前的安装中删除py文件,这会导致两个问题: 我正在使用插件:如果删除新版本的插件,执行更新的用户仍然可以
我正在使用Inno Setup,并试图关联Windows 7中Program Files (x86)中的程序。我具有以下内容: #define MyAppName "MyView" #define M
我想删除页面底部的标签,我在其中选择了安装组件的目录。标签显示安装应用程序所需的最小磁盘空间。 最佳答案 您想要隐藏 DiskSpaceLabel 控件: [Code] procedure Initi
我们正在将我们的应用程序切换到 .Net4,但我们仍然有使用 Windows XP SP2 的客户。所以我需要在设置中进行额外的检查。 在安装开始时制作一条弹出消息以丢弃 XP SP2 用户非常简单:
这是用于 Inno Setup 的 [Setup] 部分中的 LicenseFile 属性的标准 RTF 文档: 是否可以向此页面添加打印按钮以触发打印许可协议(protocol)? 我看到了一个类似
我有一个 Inno Setup 脚本可以将我的应用程序变成一个 exe。 当我使用 Inno Setup 版本 6 编译代码时,输出文件大小为 110MB(如 Windows Explorer 大
Inno Setup - 我想创建一个类似于屏幕截图的安装程序。 安装程序应在左侧突出显示当前步骤。 如何实现? 最佳答案 @Bill_Stewart 是正确的,普通的 Inno Setup 不提供如
图像作为安装程序背景。如何使用 inno 5.5.9 做到这一点? 最佳答案 我认为这在 Inno Setup 中是不可能的。也许是一些 Inno Setup 克隆。 问题是Inno Setup中的所
这个问题在这里已经有了答案: Inno Setup - Signing fails with "Sign Tool failed with exit code 0x1" (2 个答案) 关闭 3 年
如何获取有关安装程序中包含的文件的信息(最后修改时间戳、文件大小)?通过使用文件的路径,很容易引用磁盘上的文件。但是当文件没有路径时,如何在安装程序中引用它呢? 当安装程序初始化时,我想检查磁盘上是否
Inno Setup 中的单词补全是如何工作的? 如果我在代码中的任何标识符或单词的中间或末尾按 Alt+Right,则没有任何反应。 我找不到任何要安装的扩展,也找不到该主题的 Internet 答
从这里开始:Inno Setup Placing image/control on custom page . 这是做我需要的: CustomPage := CreateCustomPage(wpLi
我的安装程序在组件页面中有一个可视错误。在您开始向下滚动页面之前看起来还不错,但开始看起来一团糟。 我认为问题出在代码中的某个地方,但仅在绝对干净的脚本上重新创建了组件部分,问题仍然存在。尝试更改缩放
如何在 Inno Setup 编译器中为我们的设置提供背景全屏图像。 喜欢下面这张图。 最佳答案 不要那样做。这违反了 Windows 设计指南。 无论如何,如果必须,请使用 WindowVisibl
如何自定义 Inno Setup 安装程序的欢迎页面? 我想创建一个类似于 Skype 安装程序的安装程序,只有 3 个页面: 带有一些选项的自定义欢迎页面 进度页 使用“运行程序”选项完成页面 但是
我已经为我想更新的程序创建了文件。 我希望在安装之前,检查程序是否也在标准目录中,如果不是,则正确的目录可以选择程序所在的位置。 我试过这个: [Files] Source: "C:\Data"; D
我是一名优秀的程序员,十分优秀!