Articles of inno setup

如何跳转到button上点击页面?

我需要一个简单的事情:有先进和正常的安装button。 对于正常情况下,这一切都很简单 – 我使用NextButtonClick上的默认下一个button与一些逻辑来设置一个条件variables,并使用ShouldSkipPage skeep一些页面。 然而,对于高级设置,我创build了一个新的button,我只需点击它就可以打开下一个安装页面: procedure CurPageChanged(CurPageID : Integer); begin if CurPageID = wpWelcome then begin AdvancedButton := TButton.Create(WizardForm); AdvancedButton.Caption := 'Advanced Install'; AdvancedButton.Left := WizardForm.InfoAfterPage.Left + 10; AdvancedButton.Top := WizardForm.InfoAfterPage.Height + 88; AdvancedButton.Parent := WizardForm.NextButton.Parent; # AdvancedButton.OnClick := What shall I call to open say next page (or some page by given PageID […]

如何在Inno安装程序中引用文件关联的自定义图标?

我的申请创build文件。 我想为它创build的文档有一个特殊的图标,而不仅仅是应用程序图标。 在OS X上,通过Info.plist有一个明确的方法。 然而,在Windows中,我遇到了麻烦。 我正在使用Launch4J和Inno Setup。 Inno Setup 介绍了如何通过文件关联指定图标 。 该示例使用包含多个图标的应用程序EXE,将它们引用为0,1,2等。但是,Launch4J似乎只支持使用单个图标(应用程序图标)创buildEXE。 所以这个例子不适合我。 这是我目前的Icons部分: [Icons] Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}" Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon 这是一个示例文件关联: [Registry] Root: HKCR; Subkey: ".ext"; ValueType: string; ValueName: ""; ValueData: "EXT"; Flags: uninsdeletevalue; Tasks: associateext Root: HKCR; […]

在Windows上预安装驱动程序

我正在尝试创build一个安装程序(使用Inno Setup),它将为LCD HMI预安装USB驱动程序。 我有制造商的驱动程序(他们似乎是签名)。 但是,无论我做什么,Windows都会首先将驱动程序检测为“Gadget Serial v2.4”设备,然后立即进入“Windows Update”并下载“PNX Bulk Device”驱动程序。 该驱动程序不支持HMI。 我必须手动打开设备pipe理器,find“PNX批量设备”,进入“更新驱动程序软件”…“浏览我的电脑”,“有磁盘”等 这是一个非常艰巨的过程,可能是一个没有经验的用户压倒一切。 有没有办法使这个过程自动化,例如,如果在USB设备插入之前安装了软件包,那么驱动程序将就位,Windows将使用正确的驱动程序,而不是它find的通用驱动程序。 注意:我已经尝试了DPInst实用程序,SetupCopyOEMInf函数和pnputil.exe。 所有的方法“出现”工作(即:没有错误信息),但Windows仍然抓住通用驱动程序,无论如何。 我意识到我对司机的理解可能是有缺陷的。 我试图在Windows 7 x64架构上,但我希望它能普遍工作。

如何摆脱恼人的InnoSetup文件夹select机制?

当我设置: DefaultDirName = {pf} \ My program 在InnoSetup .iss文件中,它正确地启动了这个path的目录select。 但是,如果用户按下“浏览”button并开始浏览文件系统,InnoSetup会在用户select的path末尾保留“我的程序”后缀。 如何摆脱这个?

使用Inno Setup安装驱动程序

我在Inno Setup为我的应用程序创build了安装Inno Setup ,而且我将来可能需要安装驱动程序 。 但是,我需要了解一些关于在Inno Setup安装驱动程序的技巧,所以我可以在需要时将驱动程序轻松添加到安装程序中。 我应该强制用户只安装程序到C:\Program Files\<app>\ ,或者无所谓,我应该让他甚至在network drive上安装它? 我应该在C:\Windows\安装驱动程序,使其随时可用(即使没有networking驱动器),或者也没有关系? 是否有可能按需启动驱动程序? 我想发布我的程序的新版本,我需要创build安装程序, 所以它不需要重新启动后更新我的应用程序 。 那么是否可以closures驱动程序,用新版本覆盖它,然后再次打开(如同使用服务一样)而不重新启动Windows? 是否可以轻松地覆盖驱动程序(如问题3所述 ),还是build议始终完全卸载该程序,然后再安装新版本? 你可以请包括一些关于安装/卸载/更新你认为重要的驱动程序的其他技巧? 我相信我错过了一些重要的观点。 我没有太多的驾驶经验和知识,所以我对有些困惑的问题表示歉意。 这可能很重要,所以有一个相关的问题,应该回答这个问题: 低级别的鼠标钩子和DirectX 驱动程序开发资源 我发现了一些关于驱动程序开发的有用链接。 用这个作为参考。 CodeProject的驱动程序开发 – 第1部分 , 第2部分 , 第3 部分 , 第4 部分 , 第5 部分 , 第6部分 http://www.catch22.net/tuts/kernel1.asp 设备驱动程序简介 Windows驱动程序开发教程

检查命令行input并用inno setup中止安装

我正在尝试使用Inno Setup来调用外部命令行应用程序来创buildWindows安装程序。 如果外部应用程序失败,我希望Inno安装程序要么放弃与消息说应用程序应该卸载并重新安装。 甚至更好:回滚安装。 我打算这样做的方式(让我知道如果你有更好的想法)是从外部应用程序写入日志文件,如果有任何错误发生。 Inno安装程序应在调用外部应用程序后检查日志文件是否包含string“ok”。 我打电话给我的外部应用程序, [Run] Filename: "{app}\exec.exe"; Parameters: "{app}"; AfterInstall: checkLog 我打算有这样的东西: [Code] procedure checkLog; begin end; 所以我的问题是:如何从日志中检索string,并检查它是否包含string“OK”或不? (该path可以是过程的参数)如何通过消息中止安装或回滚安装?

如何从registry通过Inno安装程序获取Adobe Extension Manager应用程序path?

我一直在寻找开发安装程序,通过Inno Setup安装我的扩展。 我想在Inno Setup安装过程的[Run]部分启动Adobe Extension Manager作为安装后的过程。 现在,机器上可以安装多个版本的Extension Manager,默认情况下启动Extension Manager的最新版本。 我想确保用户在安装过程中select的产品版本启动相应的扩展pipe理器。 例如,如果一台机器安装了Photoshop CS5,CS6,并且用户selectPhotoshop CS5,则应启动Extension Manager CS5。 为此我需要应用程序的path。 我无法从registry获取扩展pipe理器path。

静默重装过程中的Inno安装程序包的行为

我有2个Inno安装程序安装包。 A取决于B一个或多个组件。 通常情况下, A会静静地安装B标记它需要安装的组件。 假设B已经安装了用户select的组件。 现在A将被安装并且需要来自软件包B通常组件。 如何确保这一点? 我可以像往常一样运行无提示安装,只需要额外安装所需的组件,如果他们不是已经? 这将删除已经安装的组件,如果他们没有被选中?

InnoSetup – 如何得到这个错误的骑在编译后继续显示?

我必须为nginx.exe运行sc.exe,但它没有编译,如果我有它如下。 任何人都可以告诉我什么是我做错了吗? [Run] Filename: {sys}\sc.exe; Parameters: "create nginx start=auto binPath={app\nginx.exe} " ; Flags: runhidden 要么 [Run] Filename: {sys}\sc.exe; Parameters: "create nginx start=auto binPath=""{app\nginx.exe}"" " ; Flags: runhidden 要么 [Run] Filename: {sys}\sc.exe; Parameters: "create nginx start=auto binPath=\"{app\nginx.exe}\" " ; Flags: runhidden

软件GUID是否与程序集GUID不同?

我们正在开发一个项目,我们将使用Inno Setup创build安装可执行文件。 现在,我们必须为主要组件(由VS2013创build)和软件(用于识别已安装软件的afaik)指定GUID。 这两个GUID应该不同还是应该一样? 起初,我认为我们应该两次使用相同的GUID,因为它们指的是同一个产品,但是,有人可能会认为这是两个不同的实例,即软件和程序集。 这些GUID的select有什么后果? 哪种方法更可取? 如果我们使用相同的GUID两次会有冲突吗? 编辑:我指的InnoSetup AppId属性,它默认设置为生成的GUID。 这是GUID窗口将用于识别软件?