首页
学习
活动
专区
工具
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.3K40

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.8K60
  • 安装打包程序检测运行进程并提示结束解决方案(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 脚本的灵活运用可以让您能在执行安装的时候有很多可以操作执行

    1.3K30

    .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

    1.1K10

    利用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.

    65220

    使用 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.3K10

    Java打包成.exe完美教程

    -n:打包之后的应用或包名称 --module -m:格式[/],模块名/main,不会写可以直接复制pom.xml中的mainClass标签内容。...如若想做成可安装的程序的话,请看下一步骤 使用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 第七步:这里是填写一些许可文件之类的,直接留空,然后一直点

    3.2K10

    常用软件打包类型及静默安装参数(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 技术打包的?

    16K23

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

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

    2.2K20

    怎么将 Python 项目打包成 exe?

    然后用 pyinstaller 将应用打成文件包 (含 exe),最后用 Inno Setup Compiler 打成安装包,里面就是各种文件关联,图标和信息的设置了。...self.title("公众号:ZERO开发") self.iconbitmap('logo.ico') self.geometry("600x370") # 设置固定的窗口大小...icon,而且打开时不要出现黑色闪框就带上 w,当然后面打开 exe 要把 icon 放到与他同一级的目录中,尺寸上面已经说了,下面是参数说明。...打包成功后,控制面包会显示 Building EXE from EXE-00.toc completed successfully,然后根目录的 dist 就是打包后的文件包,里面需要的文件图片等都在里面...Inno Setup Compiler 操作新建脚本,填写信息选择主程序和需要的文件设置名称和 icon选择导出位置 (前面还有协议等设置)运行脚本开始生成安装打开,安装目录里有自带卸载程序

    11310

    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.9K70

    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.7K20

    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.4K41

    如何将 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文件 然后下一步,进入这个界面保持默认

    86320

    如何把Spring Boot的Jar包做成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文件 然后下一步,进入这个界面保持默认

    99510

    逃避沙箱并滥用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将会直接执行文件加密程序。

    60220

    起底勒索软件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.4K50

    你在看电脑,而黑客们在看你

    1.远程控制电脑 2.开启摄像头,拍照录像 3.启动麦克风,监听环境音 4.监控屏幕操作 5.文件传输 6.执行shell命令 7.获取详细的系统信息:版本/ip/网络环境 8.更多更多~ 国产的更是追求用户体验...HBuilderService启动后会搜索加载当前目录的下的music.dll,该dll其实是一个黑dll,在导出函数AunXXHunmmerEngine函数中执行后门安装操作,下载多个jpg模块。...COMSupport.dll在导出的函数 WSCreateInstance中解密内存文件NH.dat,代码风格类似 解密后调用NH.Main函数,NH.dll模块在TLS回调中对系统环境做了检测。...UPX压缩过的dll,原始名NH.jpg,是大灰狼远程控制模块,导出两个函数 调用DllFuUpgradrs函数,参数为"s7S9srG9tbK9rqef",该串是C2的密文,异或解密后得到"47.52.65.18...并把隐私搜集软件设置为系统隐藏,且不可索引 木马使用Manic版本比较早,V1.3是2010年左右构建,V1.4是2014年 旧版本的ManicTime的所有记录日志都在ManicTime.sdf

    1.8K30
    领券