首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用ISPP将文件大小拆分为DwinsHs_Check函数的lo / hi位

如何使用ISPP将文件大小拆分为DwinsHs_Check函数的lo / hi位
EN

Stack Overflow用户
提问于 2019-06-03 10:44:41
回答 1查看 100关注 0票数 1

以这个脚本为例:

代码语言:javascript
复制
Source: "{tmp}\HelpDocSetup.exe"; \
    DestDir: "{app}"; \
    Flags: external deleteafterinstall; \
    Tasks: downloadhelp; \
    Check: DwinsHs_Check( ExpandConstant('{tmp}\HelpDocSetup.exe'), '{#HelpDocSetupURL}', 'My_Setup', 'Get', 0, 0 )

看到行尾的0, 0了吗?

根据DwinsHs_Check的文档,它声明:

  • FileSize : LongIntFileSizeHigh参数一起指定文件大小(以字节为单位)。它将用于计算下载进度和剩余时间。这避免了下载开始前的延迟,因为脚本不必从服务器获取文件大小。 此参数指定文件大小的低31位FileSizeHigh参数指定文件大小的高31位。注意,不是32位。 注意,如果参数设置为FILESIZE_QUERY_SERVER (0)FILESIZE_UNKNOWN (-1)FILESIZE_KEEP_FORMER (-2),则将从服务器获取文件大小。在这种情况下,FileSize参数的值将被忽略。 注意,只能在此参数中使用数字值,不能使用常量标识符。
  • FileSizeHigh: LongIntFileSize参数一起指定文件大小(以字节为单位)。它将用于计算下载进度和剩余时间。这避免了下载开始前的延迟,因为脚本不必从服务器获取文件大小。 此参数指定文件大小的高31位FileSize参数指定文件大小的低31位。 注意,如果将FileSize参数设置为FILESIZE_QUERY_SERVER (0)FILESIZE_UNKNOWN (-1)FILESIZE_KEEP_FORMER (-2),则将忽略该参数的值。 注意,只能在此参数中使用数字值,不能使用常量标识符。

这个特殊的安装文件也在我的计算机上。相对于主要ISS文件,路径为:

..\HelpNDoc\CHM\Output\PublicTalksHelpDocumentationSetup.exe

我们可以使用ISPP提取文件大小并将其拆分为DwinsHs_Check所需的两个参数吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-03 11:07:51

可以使用 preprocessor function检索文件大小。但它仅限于2GB = 31位。什么与FileSizeDwinsHs_Check参数相对应?

代码语言:javascript
复制
#define ExeSize FileSize("..\HelpNDoc\CHM\Output\PublicTalksHelpDocumentationSetup.exe")

Check: DwinsHs_Check( ExpandConstant('{tmp}\HelpDocSetup.exe'), '{#HelpDocSetupURL}', \
       'My_Setup', 'Get', {#ExeSize}, 0)

如果该文件理论上可以超过2GB,则必须使用其他方法检索文件大小--例如,使用 preprocessor function调用 preprocessor function代码。您应该立即将PowerShell (或其他)代码中的大小分成两部分,因为Inno设置预处理器无论如何都不能处理64位数字。

有关调用PowerShell代码并返回其结果的示例,请参见:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56425707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档