我的问题是,当你点击标签文件(rtf)并打开说明时,我想制作一个"超链接"(我知道现在有这样的东西在inno中)。
问题:我不想将此程序与设置一起复制, 它应该在设置内部,安装后不再存在 需要,因此应删除或抛弃。
无法使用{tmp}
文件夹,因为它只在[run]
阶段加入(如果我没有记错的话就是安装),我之前需要它。
有什么建议吗?
答案 0 :(得分:0)
[Run]
部分未明确保留临时文件夹。它可以在需要时使用(它被广泛用于例如DLL库)。据我所知,在Inno Setup中没有超链接标签这样的东西。我已将{{3>} link lable 并将其扩展为打开从安装档案中提取的文件到临时文件夹(安装程序终止时删除的文件夹) :
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
[Files]
; the dontcopy flag tells the installer that this file is not going to be copied to
; the target system
Source: "File.txt"; Flags: dontcopy
[Code]
var
LinkLabel: TLabel;
procedure LinkLabelClick(Sender: TObject);
var
FileName: string;
ErrorCode: Integer;
begin
FileName := ExpandConstant('{tmp}\File.txt');
// if the file was not yet extracted into the temporary folder, do it now
if not FileExists(FileName) then
ExtractTemporaryFile('File.txt');
// open the file from the temporary folder; if that fails, show the error message
if not ShellExec('', FileName, '', '', SW_SHOW, ewNoWait, ErrorCode) then
MsgBox(Format('File could not be opened. Code: %d', [ErrorCode]), mbError, MB_OK);
end;
procedure InitializeWizard;
begin
LinkLabel := TLabel.Create(WizardForm);
LinkLabel.Parent := WizardForm;
LinkLabel.Left := 8;
LinkLabel.Top := WizardForm.ClientHeight - LinkLabel.ClientHeight - 8;
LinkLabel.Cursor := crHand;
LinkLabel.Font.Color := clBlue;
LinkLabel.Font.Style := [fsUnderline];
LinkLabel.Caption := 'Click me to read something important!';
LinkLabel.OnClick := @LinkLabelClick;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
LinkLabel.Visible := CurPageID <> wpLicense;
end;