加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

inno-setup – Inno Setup – 如何在安装开始之前复制文件?

发布时间:2020-12-15 10:03:57 所属栏目:大数据 来源:网络整理
导读:我需要在Inno Setup启动之前或“select directory”页面之前将文件复制到一个文件夹.我希望从安装程序复制此文件,而不是从外部源复制,如果有人可以举例. 我使用这个代码: function NextButtonClick(PageID: Integer): Boolean;begin Result := True; if (Pa
我需要在Inno Setup启动之前或“select directory”页面之前将文件复制到一个文件夹.我希望从安装程序复制此文件,而不是从外部源复制,如果有人可以举例.

我使用这个代码:

function NextButtonClick(PageID: Integer): Boolean;
begin
  Result := True;
  if (PageId = wpWelcome) then
  begin
    FileCopy(
      ExpandConstant('file.exe'),ExpandConstant('{reg:HKCUSOFTWAREXXX,InstallPath}file.exe'),false);
  end;
end;

我希望有人用一个例子给出一个更好的主意.
谢谢你们.

解决方法

要在任何需要的时候从安装档案中提取文件,您必须使用 ExtractTemporaryFile程序.此过程将文件从 [Files]部分提取到安装应用程序使用的临时目录,您可以在 {tmp}常量指定的路径上找到该目录.然后,您只需通过展开提到的常量,将此类提取的文件从那里复制到目标目录.

如果要在初始化设置时执行某些操作,但在创建向导表单之前,请使用InitializeSetup事件功能.请注意,您甚至可以从该功能退出设置,而无需查看向导表单,例如如果您要复制的文件非常重要.这是一个示例代码,但首先看一下commented version的一些细节:

[Code]
function InitializeSetup: Boolean;
begin
  Result := True;
  ExtractTemporaryFile('File.exe');
  if FileCopy(ExpandConstant('{tmp}File.exe'),InstallPath}File.exe'),False) 
  then
    MsgBox('File copying succeeded!',mbInformation,MB_OK)
  else
    MsgBox('File copying failed!',mbError,MB_OK)  
end;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读