Inno setup 安装前在向导中打开文档

Inno setup 安装前在向导中打开文档,inno-setup,pascalscript,Inno Setup,Pascalscript,我的问题是,当您单击标签时,我想创建一个“超链接”(我知道inno中现在有这样的东西),带有说明的文档(rtf)将打开 问题是:我不想将此程序与设置一起复制, 它应该在安装程序中,安装后不再存在 需要,因此应将其删除或丢弃 无法使用{tmp}文件夹,因为它仅在[run]阶段(如果我没有弄错的话,这就是安装)中被访问,并且我需要它 有什么建议吗?临时文件夹没有明确地保留给[Run]部分。它可以在需要时使用(广泛用于DLL库)。据我所知,Inno设置中没有超链接标签。我制作了一个链接标签,并对其进行

我的问题是,当您单击标签时,我想创建一个“超链接”(我知道inno中现在有这样的东西),带有说明的文档(rtf)将打开

问题是:我不想将此程序与设置一起复制, 它应该在安装程序中,安装后不再存在 需要,因此应将其删除或丢弃

无法使用
{tmp}
文件夹,因为它仅在
[run]
阶段(如果我没有弄错的话,这就是安装)中被访问,并且我需要它


有什么建议吗?

临时文件夹没有明确地保留给
[Run]
部分。它可以在需要时使用(广泛用于DLL库)。据我所知,Inno设置中没有超链接标签。我制作了一个链接标签,并对其进行了扩展,用于打开从安装档案中提取到临时文件夹(安装程序终止时删除的文件夹)中的文件:

[设置]
AppName=我的程序
AppVersion=1.5
DefaultDirName={pf}\My程序
[档案]
; dontcopy标志告诉安装程序该文件不会被复制到
; 目标体系
资料来源:“File.txt”;标志:dontcopy
[守则]
变量
链接标签:TLabel;
程序链接LabelClick(发送方:ToObject);
变量
文件名:字符串;
错误代码:整数;
开始
文件名:=ExpandConstant('{tmp}\File.txt');
//如果文件尚未解压缩到临时文件夹中,请立即执行
如果文件不存在(文件名),则
ExtractTemporaryFile('File.txt');
//从临时文件夹中打开文件;如果失败,则显示错误消息
如果不是ShellExec(“”,文件名,“”,软件显示,ewNoWait,错误代码),则
MsgBox(格式('无法打开文件。代码:%d',[ErrorCode]),mbError,MB_OK);
结束;
程序初始化;
开始
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:=“单击我阅读重要内容!”;
LinkLabel.OnClick:=@LinkLabelClick;
结束;
过程CurPageChanged(CurPageID:Integer);
开始
LinkLabel.Visible:=CurPageID wpclicense;
结束;

临时文件夹未明确保留给
[Run]
节。它可以在需要时使用(广泛用于DLL库)。据我所知,Inno设置中没有超链接标签。我制作了一个链接标签,并对其进行了扩展,用于打开从安装档案中提取到临时文件夹(安装程序终止时删除的文件夹)中的文件:

[设置]
AppName=我的程序
AppVersion=1.5
DefaultDirName={pf}\My程序
[档案]
; dontcopy标志告诉安装程序该文件不会被复制到
; 目标体系
资料来源:“File.txt”;标志:dontcopy
[守则]
变量
链接标签:TLabel;
程序链接LabelClick(发送方:ToObject);
变量
文件名:字符串;
错误代码:整数;
开始
文件名:=ExpandConstant('{tmp}\File.txt');
//如果文件尚未解压缩到临时文件夹中,请立即执行
如果文件不存在(文件名),则
ExtractTemporaryFile('File.txt');
//从临时文件夹中打开文件;如果失败,则显示错误消息
如果不是ShellExec(“”,文件名,“”,软件显示,ewNoWait,错误代码),则
MsgBox(格式('无法打开文件。代码:%d',[ErrorCode]),mbError,MB_OK);
结束;
程序初始化;
开始
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:=“单击我阅读重要内容!”;
LinkLabel.OnClick:=@LinkLabelClick;
结束;
过程CurPageChanged(CurPageID:Integer);
开始
LinkLabel.Visible:=CurPageID wpclicense;
结束;

忘了提取临时文件:D哈哈,谢谢很多忘了提取临时文件:D哈哈,非常感谢
[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;