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

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是这个问题的主要原因?

为什么我的Delphi 6程序仅在less数Windows 7系统(InnoSetup)上安装时触发pipe理权限请求?

我有一个Delphi 6程序,对于大多数用户在没有pipe理员权限的情况下在用户帐户下运行时安装得很好。 但是,在某些系统上,它会触发对pipe理权限的请求。 不幸的是,我不是其中之一,所以我很难诊断这个问题。 我使用InnoSetup 5.1.9来构build我的安装程序。 我怎样才能找出我需要改变我的安装程序的configuration,以消除对某些人的系统的pipe理权限的需要? 这对我的系统造成了麻烦,因为在安装过程中,某些程序数据文件正被复制到pipe理员帐户的应用程序数据文件夹中。 然后,当我的程序在用户帐户下启动时,由于这些文件不在用户帐户应用程序文件夹中,因此无法find这些文件。

InnoSetup – 如何使setup.exe进入875kB? 所以,用户下载速度更快,下载它将下载另一个?

使用InnoSetup我准备了我的maininstaller.exe这个非常大的,比如maininstaller.exe ,当用户下载的时候,它有时候会老化。 结果经常用户忽略它,我的设置是不完整的,因为不友好的用户。 现在我已经比较了Google Chrome/Canary web browsers概念,它们的尺寸也很大,但是它们使用了两种types的安装程序,一种是非常小巧的小型安装程序,它只是快速下载并执行,下载第二个大型主安装程序,这种方法更容易部署大型安装,而且大部分用户都接受。 现在,我怎么能用Innosetup来做这样的事情(比如Google Chrome web browser安装程序)? 一个是非常小的first_setup.exe ,所以用户可以快速下载它,但一旦执行它将会上网,并下载我的maininstaller.exe ,并确保下载正确,然后执行它。 这可能吗? 任何想法。

用Inno安装安装IIS

我试图安装与Inno安装IIS,但我得到各种错误。 我试过在DOS上的命令,并工作: start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-ManagementService;IIS-CGI;IIS-RequestFiltering;IIS-ASPNET;IIS-HttpLogging;IIS-NetFxExtensibility;IIS-HttpErrors;IIS-DefaultDocument;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-StaticContent;IIS-ManagementConsole;IIS-DirectoryBrowsing;IIS-WindowsAuthentication;IIS-WebServer; 我试着在Inno Setup中使用这个: Filename: pkgmgr; Parameters: "/iu:IIS-WebServerRole; IIS-WebServer: ; IIS-CommonHttpFeatures: ; IIS-ManagementService: ; IIS-CGI: ; IIS-RequestFiltering: ; IIS-ASPNET: ; IIS-HttpLogging: ; IIS-NetFxExtensibility: ; IIS-HttpErrors: ; IIS-DefaultDocument: ; IIS-ISAPIExtensions: ; IIS-ISAPIFilter: ; IIS-StaticContent: ; IIS-ManagementConsole: ; IIS-DirectoryBrowsing: ; IIS-WindowsAuthentication: ; IIS-WebServer: ; " 但它显示错误 操作失败,0x80070057参数不正确 我试过之后: Filename: pkgmgr; Parameters: "/iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-ManagementService;IIS-CGI;IIS-RequestFiltering;IIS-ASPNET;IIS-HttpLogging;IIS-NetFxExtensibility;IIS-HttpErrors;IIS-DefaultDocument;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-StaticContent;IIS-ManagementConsole;IIS-DirectoryBrowsing;IIS-WindowsAuthentication;IIS-WebServer;"; 但显示错误 […]

如何确定是否使用Inno安装程序安装了特定的Windows Update软件包(KB * .msu)?

我想知道如何确定是否在目标计算机上安装了特定的Windows Update软件包,例如可以说名称为KB2919355的Windows Update软件包。 存在一个内置的function来检查? 如果不是,那么确定它的代码是什么? 也许搞乱registry,或者可能是最干净和/或安全的方式? 伪代码: [Setup] … [Files] Source: {app}\*; DestDir: {app}; Check: IsPackageInstalled('KB2919355') [Code] function IsPackageInstalled(packageName): Boolean; begin … Result := …; end;

Inno安装程序检测Windows防火墙状态

我需要检测Windows防火墙状态(即是否启用)以显示一条消息,警告防火墙规则可能需要configuration为在防火墙启用时允许特定端口上的入站连接,而不是在启用时不是。 看下面的代码示例: [Code] //Check if Windows Firewall is enabled function IsWindowsFirewallEnabled(): Boolean; begin //Method required here Result := True; end; function NextButtonClick(CurPageID: Integer): Boolean; begin //Display a warning message on a Server install if Windows Firewall is enabled if CurPageID = wpSelectComponents and IsComponentSelected('Server') and IsWindowsFirewallEnabled then begin MsgBox('Windows Firewall is currently enabled.' + #13#10 […]

在Windows x86和x64下将x86.exe展开到“C:\ Windows \ System32”?

我想使我的安装程序在x86 / x64窗口兼容,这意味着便携式。 我做innosetup安装程序只扩展一个x86 CLI可执行文件,并且我需要将其展开到C:\ windows \ system32目录,即使安装程序在Windows x64下运行,否则如果将其展开到C:\ Windows \ Syswow64目录,然后在Windows x64 CMD下无法识别该exe文件。 那么我应该怎样设置这个属性来使它在上面指定的条件下可移植呢? ArchitecturesInstallIn64BitMode= ??? 在这里扩展文件时,我应该使用什么标志? Source: {sys}\My_x86_application.exe; DestDir: {sys}; Flags: ??? 我已经玩了32Bit , 64Bit和Is64BitInstallMode等一些标志,但我不能得到预期的结果,因为如果我知道限制常量{syswow64}在Windows x86下引发安装错误… UPDATE 这是我的安装脚本的相关部分,但它是错误的,它应该与x86和x64窗口(便携式)兼容,并且只在两个窗口下将Source: {sys}\*文件扩展到C:\ Windows \ System32使用常量{sys}来检测dirpath,当然)。 [Setup] DefaultDirName={pf32}\{#AppName} ArchitecturesAllowed=x86 x64 ArchitecturesInstallIn64BitMode=x64 [Files] Source: {app}\*; DestDir: {app}; Flags: ignoreversion Source: {sys}\*; DestDir: {sys}; Flags: ignoreversion 64bit

如何在没有在Inno Setup中打开新窗口的情况下运行CMD命令

我正在使用Inno安装程序安装程序来设置一个安装程序文件,它可以调用刚刚通过脚本安装的.exe文件,并在安装后立即启动它,命令如下: [Run] Filename: "{cmd}"; Description: "{cm:LaunchProgram,3mtxmail}"; \ Flags: nowait postinstall skipifsilent runascurrentuser; \ Parameters: "/b /k "" ""{app}\my.exe"" -c ""{app}\default.conf"" "" " 当my.exe运行时,它不需要任何接口,只应监听特定端口上的任何stream量,并将该stream量信息写入日志文件。 但是,当我执行安装程序并启动程序时,它仍然会popup一个新的控制台窗口,我认为/b应该阻止。 我希望不会看到这个新的控制台窗口,实际上在屏幕上看不到任何东西。 从https://technet.microsoft.com/en-us/library/bb491005.aspx中 , /b应该是表示不打开命令的新窗口的标志。 什么是正确的语法?

Inno安装程序总是安装到pipe理员的AppData目录中

我想将我的应用程序存储在当前用户的AppData目录中,以避免自动更新我们的应用程序(当它存储在Program Files中时)所具有的权限问题。 我们不给用户select在哪里安装应用程序。 我们有非pipe理员用户的抱怨,安装程序将应用程序存储在pipe理员的AppData目录(当然是UAC之后),而不是当前用户的AppData目录,这会阻止应用程序在未来运行。 首先,我有DefaultDirName={userappdata}\{#MyAppName} 。 然后我试着DefaultDirName={commonappdata}\{#MyAppName} 。 然后,我试着与PrivilegesRequired=lowest ,甚至作为PrivilegesRequired=none作为创buildInnoSetup安装程序请求权限提升只有当需要问题build议。 这是我现在的脚本,以防万一我失去了一些显而易见的东西: ; Script generated by the Inno Setup Script Wizard. ;SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! #define MyAppName "Teamwork Chat" #define MyAppVersion "0.10.0" #define MyAppPublisher "Digital Crew, Ltd." #define MyAppURL "http://www.teamwork.com/" #define MyAppExeName "TeamworkChat.exe" [Setup] ; NOTE: The value of […]