首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从inno设置中获取exe或dll的版本

,可以通过以下步骤实现:

  1. 使用Inno Setup编写安装脚本,确保已经包含了需要安装的exe或dll文件。
  2. 在Inno Setup脚本中,可以使用ExtractFileVersion函数来获取指定文件的版本信息。该函数接受一个参数,即文件的完整路径,返回一个字符串表示文件的版本号。
  3. 在安装过程中的适当位置,可以调用ExtractFileVersion函数来获取目标文件的版本号,并将其保存到一个变量中。

以下是一个示例的Inno Setup脚本,演示了如何获取exe或dll文件的版本号:

代码语言:pascal
复制
[Setup]
AppName=MyApp
AppVersion=1.0
DefaultDirName={pf}\MyApp

[Files]
Source: "MyApp.exe"; DestDir: "{app}"
Source: "MyLibrary.dll"; DestDir: "{app}"

[Code]
function ExtractFileVersion(const FileName: String): String;
  external 'ExtractFileVersion@files:version.dll stdcall';

var
  MyAppVersion: String;

procedure InitializeWizard;
begin
  MyAppVersion := ExtractFileVersion(ExpandConstant('{app}\MyApp.exe'));
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssInstall then
  begin
    // 在安装过程中输出版本号
    MsgBox('MyApp版本号:' + MyAppVersion, mbInformation, MB_OK);
  end;
end;

在上述示例中,ExtractFileVersion函数是一个外部函数,它使用了一个名为version.dll的动态链接库。你可以根据自己的需求,编写一个C/C++的DLL来实现该函数,用于提取文件的版本号。

这样,在安装过程中,当进入到安装步骤时,会弹出一个消息框显示目标文件的版本号。

请注意,这只是一个示例,你可以根据自己的需求进行修改和扩展。另外,腾讯云并没有提供与Inno Setup直接相关的产品或服务,因此无法提供相关的腾讯云产品链接。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Pyinstaller打包exe完整教程

原创文|Space9 Python文件打包成可安装、无需Python依赖高效可执行exe程序 工具及环境 PyInstaller Inno Setup Windows和Python PyInstaller...程序安装包 安装Inno Setup 稳定版下载地址:https://jrsoftware.org/download.php/is.exe 测试版下载地址:https://jrsoftware.org...Setup安装目录里Languages目录 使用向导生成打包脚本 使用向导生成打包安装程序脚本,并保存 参考脚本 setup.iss ; Script generated by the Inno...\resources\logo.ico 设置卸载程序图标 Flags: checkablealone 设置创建桌面快捷方式默认勾选状态 卸载删除文件文件夹 [UninstallDelete]...Type: files; Name: “{app}\ffmpeg.exe” Type: filesandordirs; Name: “{app}\WAV” 自动化构建脚本 实现可行性 Inno Setup

1.1K40

inno setup读取注册表遇到一个坑

一、背景       目前,公司针对PR开发一个插件需要发布到64位系统上。该插件包括一个prm格式文件和若干个DLL文件。...再换成HKEY_USERS下其他键值同样获取成功。那么HKEY_LOCAL_MACHINE下其他键值是否能获取得到呢?随便找了个键值项,发现也无法获得到键值。...那么问题就来了:其他ROOT下键值都可以获得成功,唯独HKEY_LOCAL_MACHINE下键值获取不到,这是为什么呢?...Windows 32bit和64bit版本注册表稍微有不同。我们知道64bit系统上照样可以跑32bit程序,因此在注册表上也有区分,特意为32bit程序作了兼容处理。...通过HKLM32和HKLM64明确指出读取具体位置,就可以避免上述这种问题了。事实上,在inno setup说明文档还有另外一种方法可以尝试,也可以避免64bit系统产生问题。

2.5K60

安装打包程序检测运行进程并提示结束解决方案(Inno Setup) )

而在执行安装前我们可以通过使用 Inno Setup 检测当前系统运行进程,如果有用户在执行了某些进程,那么通过该检测就可以有效提示用户先关闭进程后再执行安装。...而在执行安装前我们可以通过使用 Inno Setup 检测当前系统运行进程,如果有用户在执行了某些进程,那么通过该检测就可以有效提示用户先关闭进程后再执行安装。...以下是大眼仔旭收集详细 Inno Setup 检测运行进程并提示结束解决方案代码,您可以根据自己需要复制到 Inno Setup 脚本合理使用即可。...:= True; if PDir ('ISTask.dll') '' then if RunTasks(CustomMessage('Tasks'), False, False)...:= True; end else Result := False; end end; Inno Setup 脚本灵活运用可以让您能在执行安装时候有很多可以操作执行

96730

.NET6打包部署到Windows Service

ContentRootPath 不设置ContentRootPath会指向C盘sc.exe所在文件夹。...WinVersionTooLowError=该软件需要 %1 版本号 %2 或者更高。 WinVersionTooHighError=该软件不能在 %1 版本号 %2 或者更高版本安装。...UninstalledAll=%1 被成功地电脑中删除。 UninstalledMost=%1 删除完成。%n%n有某些部件不能被删除。您可能需要手动删除它们。...AssocingFileExtension=正在用文件扩展名 %2 匹配[&A] %1 ... 7.打包 打开Inno Setup,通过右上角File->New新建Inno Setup打包文件。...设置应用程序信息 设置安装目录为前面的程序发布目录 添加卸载快捷键 设置licence信息 选择安装模式 选择汉化语言 设置输出目录 脚本添加安装命令,卸载命令 [Run] Filename

89310

利用Inno Setup在VS编译时自动构建安装包

安装包设置 2.13. 设置完了就会生成一个脚本 2.14. 编译完成,则会在目录生成一个exe文件,双击就可以进行安装 2.15. 安装效果 至此,一个简易安装包制作完成。...修改刚才创建安装包时生成脚本文件 主要是将绝对路径改为相对路径以及自动获取主程序文件版本等,避免其它同事/电脑编译时报错,可以参考下我脚本 ; Script generated by the Inno...设置项目主程序生成后事件 参考命令: IF "$(ConfigurationName)" == "Release" ( "$(SolutionDir)DevOps\InnoSetup\ISCC.exe...Tips:为避免编写代码调试时编译速度过慢,最好还是要在生成后事件中加上Release模式判断,当解决方案中有很多个项目时,编译目录依赖文件过多情况下,Inno Setup构建会有点慢。...如果在实际操作遇到错误或有疑问,以及更好建议可以在评论交流.. 6.

36720

使用 Inno Setup 制作桌面软件安装包

通知用户新安装包已经可以获取 在使用 Azure Pipelines 实现 CI 这篇文章,我讲解了如何实现第 1、2、3、5 步。...至于第 6 步,可以在 Project Settings Notifications 页面设置使用邮件通知团队成员,也可以参考 使用连接器接收Azure DevOps通知 这篇文章通过 Teams...但我们不能将这个 Zip 包直接发给客户,我们至少还要包括开始菜单和修改注册表什么一大堆东西,所以需要将 Release 文件打包到一个安装包。...我公司通常使用 Inno Setup 制作安装包,在 Azure Pipelines 中使用 Inno Setup 也十分简单,于是这篇文章将使用 Inno Setup 作为制作安装包例子。...Pipeline 需要添加两个任务: 一个负责使用 Chocolatey 下载并安装 Inno Setup 任务 一个调用 Inno Setup 运行 SetupScript.iss 任务 然后修改

2.2K10

Java打包成.exe完美教程

-n:打包之后应用包名称 --module -m:格式[/],模块名/main,不会写可以直接复制pom.xmlmainClass标签内容。...如若想做成可安装程序的话,请看下一步骤 使用inno setup制作可安装程序 第一步:到官网下载innosetup-6.2.2.exe并安装 注意:innosetup默认是英文安装,简体中文安装需要自己去官网下载中文语言包...文件复制进去(注意要把编码格式设为UTF-8或者UTF-8-BOM),然后到以下打包步骤第八步设置安装语言就可以选择简体中文了。...第二步:打开安装好 Inno Setup Compiler 点击File->New,点击Next,如下图: 第三步:设置应用程序名称和版本号后点击Next(注意是必填) 第四步:设置文件夹名称,一般保留默认就行...,然后继续Next 第五步:设置exe主文件所在目录,我们选择刚刚用jpackage打包好exe和依赖文件,然后Next 第六步:继续点击Next 第七步:这里是填写一些许可文件之类,直接留空,然后一直点

1.1K10

常用软件打包类型及静默安装参数(nsis|msi|InstallShield|Inno)

软件安装采取全自动半自动方式进行。...这类程序安装文件大部分都可以被压缩软件解压缩,安装文件 setup.exe 属性对话框应该有“InstallShield (R) Setup Launcher”或者其他类似的字样。...可以使用命令行选项运行wise installation.exe,以自动执行常用任务 更多参数: /c file.wse WISE脚本创建可执行文件 /r 在 SetupCapture 窗口中打开WISE...Inno Setup 制作安装文件,请使用下面的明显,安装完直接重启: setup.exe /sp- /silent /norestart 如何判断哪个安装程序是用 Inno 技术打包?...这类软件都会在安装结束后显示一个确认屏幕(CDex)或者一个设置文件关联方式结束安装屏幕(Winamp) 怎么判断哪个程序是使用 NSIS 技术打包

12.1K22

.net程序源代码如何避免被反编译

MSIL最终由CLR转换为处理器能够理解本机代码。元数据包含装配信息,如程序集名称、版本、文化和公钥。 如何DLLEXE获取源代码? 是的,我们可以DLLEXE获取源代码。...文件 现在我们试着EXE文件获取源代码。...将您想要保护EXE拖放到ConfuserEx,或者您可以手动选择基础目录、输出目录并添加DDLEXE。...一旦您完成了设置目录并添加DLLEXE,请到ConfuserExSettings选项卡。您可以向Gobal设置添加规则,也可以为每个DLLEXE设置单独规则。...您可以在选择输出目录中找到受保护DLLEXE。 测试运行一下ConfusedEx生成EXEDLL,并检查它是否工作正常。现在尝试用反编工具反编译。

1.9K20

Spring Boot项目打包成exe踩坑日记!

准备 准备工作: 一个jar包,没有bug能正常启动jar包 exe4j,一个将jar转换成exe工具,链接:https://pan.baidu.com/s/1J30uUMJcYnqWCJSr6gkM5w...提取码:6esr 注册码:L-g782dn2d-1f1yqxx1rv1sqd inno setup,一个将依赖和exe一起打成一个安装程序工具,链接:https://pan.baidu.com/s/...下方有个选项,需要设置打包后程序兼容32和64位系统 ? 进来后勾选上 ?...照着这个样子写目的是,最终会把本地jre目录和exe一起打包,让exe文件自己去根据路径去查找一起打包jre,可不用再安装jdk ? 接着下一步,选择Client VM ?...打开inno setup,左上角File - New ? 直接点下一步,填写配置,应用名称,版本等,随意 ? 然后点击下一步,这个地方默认就行,直接下一步 ? 接着选择生成好exe文件 ?

1.1K41

C# 版dll 程序集合并工具

,将依赖DLL合并到一个EXE。...id=17630 这个支持将EXE依赖DLL合并到EXE,也支持将主DLL依赖其他DLL合并到一个DLL,这个基本满足要求,唯一不足之处是没有GUI,每次使用敲命令很不方便,于是继续寻找,有ILMergeGUI...说明:      当主文件为dll时,合并导出文件为 DLL,当主文件类型为exe 时,合并后文件为exe;     .列表里面的dll文件为主文件依赖文件;      CLR版本支持v1、v1.1...必须在调用Merge()之前设置。 public string OutputFile { get; set; }  获取设置合并后生成文件名,必须在调用Merge()之前设置。 ..."v1.1", "v2", "v4",第二个参数为mscorlib.dll目录 public ILMerge.Kind TargetKind { get; set; } 获取设置目标平台类型(Windows

1.8K70

Inno Setup 安装包脚本 Run Flags 标记

推荐方法是自己写安装辅助 exe 程序,在安装包解压缩完成之后调用辅助安装程序,这样安装逻辑可以放在安装程序,而安装程序本身可以使用自己熟悉语言开发 在 Inno Setup 安装包脚本,可以在 Run...这个标记设置之后不能加上 shellexec 内容 64bit 当使用 Filename 和 WorkingDir 参数将会设置里面用到 {sys} 常量为 64 系统工作路径,默认在 64 系统上安装将会应用...{sys} 将会根据设置标记选用 32 64 系统文件夹 nowait 执行命令时候,安装包进程不等待此命令执行完成 不能和 waituntilidle 和 waituntilterminated...Inno Setup 安装包,可以通过 /silent 命令 /verysilent 命令进行静默安装 使用 /silent 时,静默安装,但如果又报错,还是会提示,并且有进度条也就是用户能看见进度条界面...等待调用命令暂停退出 如果以上内容有不明白,请点击官方文档 Inno Setup Help

2.2K20

如何将 SpringBoot 打包成.exe启动?

1前言 近期做了一个前后端合并spring boot项目,但是要求达成exe文件,提供给不懂电脑小白安装使用,就去研究了半天,踩了很多坑,写这篇文章,是想看到这篇文章的人,按照我步骤走,能少踩坑。...2准备 准备工作: 一个jar包,没有bug能正常启动jar包 exe4j,一个将jar转换成exe工具 inno setup,一个将依赖和exe一起打成一个安装程序工具 3开始 以我为例子,我将...jar包放在了桌面 打开安装好exe4j工具 直接下一步进入界面,选择JAVA转EXE 然后点下一步,输入名称和输出路径 继续点击下一步,选择启动模式 下方有个选项,需要设置打包后程序兼容...照着这个样子写目的是,最终会把本地jre目录和exe一起打包,让exe文件自己去根据路径去查找一起打包jre,可不用再安装jdk 接着下一步,选择Client VM 然后一直下一步,最终出现如下界面...打开inno setup,左上角File - New 直接点下一步,填写配置,应用名称,版本等,随意 然后点击下一步,这个地方默认就行,直接下一步 接着选择生成好exe文件 然后下一步,进入这个界面保持默认

75120

驱动精灵恶意投放后门程序 云控劫持流量、诱导推广

phoenix.exe可以执行后门指令 kpctrl.dll会首先会通过本地同步fnsign.dat(该文件被加密,该文件同步地址为:hxxp://pc001.update.lbmini.cmcm.com...“和“knb3rdhmpg.dll“knbhmpg64.dll“和“knb3rdhmpg64.dll”注入到系统进程explorer.exe。...获取knb3rdhmpg.dll中导出函数F1地址 在获取到knb3rdhmpg.dll中导出函数F1地址后,程序便会进入F1代码逻辑运行, 首先会根据所获取快捷方式路径获取到其所指向可执行文件路径...劫持用户浏览器 六、云控锁首 注入到浏览器knb3rdhmpg.dll模块会通过进程间通信方式获取锁首配置内容,锁首功能可以通过配置文件进行控制。...毒霸锁定搜狗导航页 锁定新建标签页 注入浏览器knb3rdhmpg.dll通过Hook SetWindowTextW对设置浏览器标题栏内容调用进行过滤。

1.8K20

如何把Spring BootJar包做成exe?超详细教程来了!

准备 准备工作: 一个jar包,没有bug能正常启动jar包 exe4j,一个将jar转换成exe工具,链接:https://pan.baidu.com/s/1J30uUMJcYnqWCJSr6gkM5w...,提取码:6esr,注册码:L-g782dn2d-1f1yqxx1rv1sqd inno setup,一个将依赖和exe一起打成一个安装程序工具,链接:https://pan.baidu.com/s/...继续点击下一步,选择启动模式 下方有个选项,需要设置打包后程序兼容32和64位系统 进来后勾选上 然后一直下一步,一直出现如下界面,开始选择jar包以及配置 在VM参数配置地方加上:-Dfile.encoding...=utf-8 点击下一步,配置JRE 下拉框点击后进入如下界面 照着这个样子写目的是,最终会把本地jre目录和exe一起打包,让exe文件自己去根据路径去查找一起打包jre,可不用再安装jdk 接着下一步...打开inno setup,左上角File - New 直接点下一步,填写配置,应用名称,版本等,随意 然后点击下一步,这个地方默认就行,直接下一步 接着选择生成好exe文件 然后下一步,进入这个界面保持默认

82910

逃避沙箱并滥用WMI:新型勒索软件PyLocky分析

它同时使用了Inno Setup Installer(一款基于开源脚本安装器)和PyInstaller,因此这样会增加静态分析方法检测难度,其中就包括了基于机器学习解决方案。...感染链 8月2日,我们检测到了一波针对法国企业PyLocky攻击活动,该活动攻击者主要通过以发票为主题垃圾邮件来引诱目标用户感染勒索软件。...成功运行之后,Facture_23100.31.07.2018.exe会让目标主机感染恶意组件(一些C++文件、Python库和Python 2.7核心动态链接库DLL),以及主要勒索程序(lockyfud.exe...下面给出是PyLocky可加密文件类型: ? ? 加密程序 PyLocky支持加密文件类型是硬编码在配置文件,并且利用了Windows管理规范(WMI)来收集受感染设备系统信息。...如果受感染系统可见内存大小小于4GB的话,PyLocky还可以通过休眠999999秒(11.5天)来躲避沙盒环境。如果内存大小大于等于4GB的话,PyLocky将会直接执行文件加密程序。

55920

起底勒索软件Trigona:扮猪吃老虎,闷声发大财

DC2.exe DC2.exe是一个用于Windows操作系统提取密码和身份验证凭据等敏感信息工具,可以用来包括Mimikatz密码。...虽然攻击者已经使用UPX对这个版本Mimikatz进行了压缩,安全研究人员还是发现,攻击者经常使用类似UPX等压缩工具其他打包程序,来逃避底层有效负载静态检测。...可对系统进行以下更改: 1.禁用账户控制(UAC)并将cmd.exe设置为HelpPane.exe、utiman .exe、Magnify.exe和setc .exe等。...DC6.exe DC6.exe是公开可用工具Advanced Port Scanner安装程序,常被打包在Inno Setup安装程序包,而Inno Setup是Windows程序免费安装软件。...在Inno Setup藏着Advanced Port Scanner为代码增加了额外混淆层,其目的是为了逃避静态签名检测。

1.3K50

KBOT研究报告

加密数据包含恶意软件模块(DLL库)主体,以及用于解密、加载内存和运行代码。数据用XOR方法加密,库用R**加密,用Aplib压缩。 ? 多态代码末尾是获取kernel32.dll代码: ?...该示例首先在其存储搜索所需文件的当前版本;如果出现故障,它将从原始版本读取文件数据,原始版本以加密形式位于主体。在每个加密数据开头都有包含JF签名。 ? ?...感染可执行文件时会向代码部分添加多态代码,并在.rsrc、.data.rdata末尾添加加密代码。与添加到EXE文件代码不同,此代码不包含bot加密主模块,而是文件存储读取和解密。...恶意代码会进一步加密存储读取主bot模块,受感染dll原始数据不会被保存。DLL最后一部分结尾处加密代码: ? 在系统EXE文件启动后,dll将加载到进程地址空间中。...远程管理 KBOT与BC.ini文件列出服务器建立反向连接,使用RDP协议同时创建多个会话,恶意软件将配置远程桌面服务器设置: 1、查找内存termserv.dll进程 ?

1.2K20
领券