Articles of inno setup

修改编译的Inno Setup安装程序中的configuration文件(每个下载的可执行文件的自定义configuration文件)

我正在处理一个项目,需要一个独特的操作方法,它需要一个windows安装程序exe(使用Inno Setup打包)更新为不同的configuration文件,每个下载包含一个唯一的标识号。 该项目本身是一个基于Web的,我在Apache和Linux上使用PHP。 安装程序包含一个Windows二进制可执行文件和config.ini文件。 每次准备下载文件时,我只需要编辑config.ini文件。 更新只是递增计数器。 我没有find一个方向,因为我正在编辑在Windows中创build的Inno Setup打包文件,以便在Linux服务器中进行编辑。 任何人都可以指向我的一些想法,以实现这一点,请。 谢谢, SK

inno安装程序需要关于开始菜单下的图标组的帮助

我正在使用Inno设置。 我需要将我的程序图标放在公司组下的“开始”菜单中。 我的#定义: MyAppPublisher = publisher MyAppName = game name 一些示例代码: [Icons] Name: {group}\{#MyAppPublisher}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; IconFilename: {app}\{#MyAppIcon} Name: {group}\{#MyAppPublisher}\{cm:ProgramOnTheWeb,{#MyAppName}}; Filename: {#MyAppURL} Name: {group}\{#MyAppPublisher}\{cm:UninstallProgram,{#MyAppName}}; Filename: {uninstallexe} Name: {commondesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon 我有 开始菜单 所有的程序 游戏名称 出版者 游戏名称(游戏exe) 卸载游戏名称 网站游戏名称 但我需要的是 开始菜单 所有的程序 出版者 游戏名称 游戏名称(游戏exe) 卸载游戏名称 网站游戏名称 我应该怎么做才能得到我想要的布局?

检查Inno安装程序中是否存在快捷方式

在我的Inno Setup安装程序中,我需要确保某个文件的快捷方式存在于文件夹中。 快捷方式的名称是任意的,不在我的控制之下。 我只知道它需要指向哪个文件。 如果缺less快捷方式,我需要生成快捷方式。 如果已经存在,则不能再次创build。 我想这是在某种程度上遍历相关文件夹中的所有快捷方式文件,并检查他们指向哪个文件。 在对共享快捷方式/图标的回答的评论中,提到了一个IShellLink接口,但是我不知道如何在Code部分使其可用。 ( Uses ShlObj;不被识别) 有人有build议我怎么能解决这个问题?

确定Inno Setup中的Windows版本

我正在使用Inno安装程序来更改操作系统中的回收站。 如果用户正在运行Windows 7或Windows XP,我需要做一些事情。 我尝试使用: if not FileExists(winDir + '\System32\imageres.dll') then if not FileExists(winDir + '\System32\shell32.dll') then installError(3); 但它似乎无法findimageres.dll或shell32.dll即使我已经validation它们存在。 我究竟做错了什么? 或者我可以另一种方式检查Windows版本?

在Windows启动时使用参数启动应用程序

我试图让我的应用程序在Windows启动时自动启动并运行login逻辑。 我有它的启动文件夹中的快捷方式与参数,但我想知道是否有一些方法来设置一个registry项,可以启动我的程序,并传递参数像一个快捷方式将? 我正在使用Inno安装程序安装程序,我正在使用这一行: Name: "{commonstartup}\AppNameHere"; Filename: "{app}\AppNameHere.exe"; \ Parameters: "/login"` 但我希望能够使用像这样的registry项: Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; \ ValueType: string; ValueName: "AppNameHere"; ValueData: """{app}\AppNameHere.exe"""; \ Flags: uninsdeletevalue` 我以为会有一些方法来指定参数的启动,但我找不到什么在Inno安装网站上,除了我已经发现有关从http://www.jrsoftware.org/iskb.php添加registry项本身?startwithwindows 有没有人有添加registry项和Windows启动时使用参数启动应用程序的经验?

dynamicselect每个用户和每台机器的安装

我正在使用Inno安装程序来部署应用程序。 对于大多数情况下,不需要pipe理员权限的每用户安装都可以。 但是,有些情况下我需要为所有用户安装应用程序,例如Citrix或TSE。 不幸的是,在每个用户和每台机器之间dynamicselect似乎是不可能的。 这取决于在编译时设置的PrivilegesRequired设置。 我最近的解决方法尝试几乎让我在那里。 基本上我有一个设置PrivilegesRequired设置为lowest ,如果我需要安装所有用户,我重新启动与pipe理员权限的设置。 这工作, 但卸载信息仍写入到HKEY_CURRENT_USER而不是HKEY_LOCAL_MACHINE 。 我的问题: – 是否有一种方法来实现双用户/每机安装与Inno安装程序? (不生成两个不同的安装程序) – 如果不是,有没有办法写入卸载信息HKEY_LOCAL_MACHINE当PrivilegesRequired设置为lowest ? 编辑: 这个问题接受的答案不适用于我的情况。 我只想要在命令行上传递一个特定的参数( /AllUsers )时才请求UAC提升。 没有这个参数,即使用户是pipe理员,UAC提示也不应该出现。 而TLama的答案与我目前的方法有同样的问题。

Inno安装Pascal脚本来search正在运行的进程

我目前正试图在卸载时进行validation。 在Inno Setup中的Pascal脚本函数中,我想要search特定的进程,如果可能的话使用通配符。 然后,遍历所有查找结果,获取图像名称和图像path名称,以检查即将卸载的程序是否与正在运行的程序相同。 有没有办法做到这一点?

Windows有限的用户安装

我有一个Win32应用程序,其中包括一个EXE,一个ActiveX控件(DLL)和一个COM服务器(EXE),我使用Inno Setup 5构build我的安装程序。 我们的许多客户在用户没有pipe理权限的情况下使用有限的用户帐户,并且因为COM组件需要注册(写入HKEY_CLASSES_ROOT),所以我的安装文件必须以高级(admin)权限运行。 我认为这是不可避免的(可惜,我不能使用免注册的COM,因为我有EXE COM服务器)。 不过,我想创build一个更新安装程序,可以作为有限的用户运行,并寻找一些build议。 我在想的是以下几点: 初始安装(首次安装)将应用程序安装到%ALLUSERSPROFILE%\ Application Data \ CompanyName \ AppName而不是%PROGRAMFILES%。 COM组件被注册为正常(因为它们不会已经存在)。 后续更新(使用不同的Inno安装脚本)将简单地将新文件复制到%ALLUSERSPROFILE%\ Application Data \ CompanyName \ AppName。 希望即使是有限的用户也可以写入这个文件夹,而且由于COM组件已经被注册,所以不需要pipe理员访问。 这意味着我的客户可以升级到最新,最好的版本,而无需使用pipe理员帐户的麻烦。 这是可以接受的还是这可能咬我的背面? 我很确定谷歌浏览器做了类似的事情,但是因为它没有COM组件(据我所知),即使最初的设置可以作为一个有限的用户。 其他任何人面对这个问题的build议都会非常受欢迎。

用Inno Setup添加unistall信息

我正在使用Inno Setup为我的程序创build一个安装程序,但是我希望能够添加一个图标并更改控制面板(添加/删除程序)中显示的一些信息。 我知道Inno Setup会添加一个registry键让程序首先被列出来,所以我想知道这是否可以以任何方式扩展,至less我的图标显示在列表中! 提前致谢

Microsoft SmartScreen – 使用InnoSetup安装程序暂停?

我总是使用InnoSetup进行打包和发布。 用户使用链接下载应用程序,例如: https : //oursite.com/codesigned/mysetup.exe 直到现在,它一直工作,但最近我不得不续约我的代码签名证书,因为它过期了。 更新后,我有SmartScreen问题,每个用户下载应用程序,并得到这是以前没有的Smartscreen。 我已经使用signtoo.exe verify /pa innosetup-made-myexe.exe ,它显示成功,我也做了与Windows Application Certification Kit的validation,显示它已通过,但与警告,所有这些WARNNINGS主要由InnoSetup生成。 在这里你可以find输出,在InnoSetup上显示WARNINGS的例子: https://docs.google.com/document/d/11frW_GxI0xSVcrAXh4_rqcKBQSaermAlpYKj4xzQi4o/pub 我该如何解决这个问题? (还不知道它的标准代码签名和EV代码签名问题?我已经使用了几年的标准代码签名,它一直工作,我可以升级到EV代码签名,但我怎么能确保它不是InnoSetup编译器问题?可以看到WARNNINGS已经在InnoSetup上面的url中显示) 请指教。 编辑: 以validation其innosetup或代码签名问题(请参阅https://stackoverflow.com/a/29067585/285594 )我已经完成以下操作: 一)从microsoft我已经下载的文件调用winqual.exe不需要innosetup b)我的代码签名winqual.exe并上传到我的同一台服务器 c)我下载了与Internet Explorer相同的文件,它的工作原理没有向我展示SmarTScreen 现在是否有任何意义,如果innosetup是这个问题的主要原因?