标签: inno-setup

如何使用命令提示符重启服务?

我想在[Icons]使用Inno Setup的部分中使用命令提示符重新启动Windows服务.请帮我解决问题.

installer windows-services inno-setup

24
推荐指数
4
解决办法
10万
查看次数

仅在需要时使Inno Setup安装程序请求权限提升

如果需要特权提升,Inno Setup安装程序具有可用于控制安装程序启动时的PrivilegesRequired指令.我希望我的安装程序甚至可以为非管理员用户工作(没有问题将我的应用程序安装到用户文件夹,而不是Program Files).所以我设置PrivilegesRequirednone(未记录的值).这使得UAC仅为管理员用户提示弹出,因此他们甚至可以安装到Program Files.没有UAC提示非管理员用户,所以即使他们可以安装应用程序(到用户文件夹).

这有一些缺点:

  • 有些人在他们的计算机上使用不同的管理员和非管理员帐户,通常使用非管理员帐户.通常,在使用非管理员帐户启动安装时,当他们收到UAC提示时,他们会输入管理员帐户的凭据以继续.但这不适用于我的安装程序,因为没有UAC提示.
  • (过于可疑)拥有管理员帐户且想要安装到用户文件夹的人无法在没有(不需要)管理员权限的情况下启动我的安装程序.

是否有一些方法可以在需要时(当用户选择仅由管理员帐户写入的安装文件夹时)使Inno Setup请求权限提升?

我假设在Inno Setup中没有这个设置.但可能有一个程序化的解决方案(Inno Setup Pascal脚本)或某种插件/ DLL.


请注意,即将推出的Inno Setup 6具有对非管理安装模式的内置支持.

privileges uac inno-setup pascalscript elevated-privileges

24
推荐指数
2
解决办法
2万
查看次数

卸载失败,因为程序正在运行.在尝试删除之前,如何让Inno Setup检查运行过程?

Inno安装程序无法在卸载期间删除组件,因为我的程序仍在运行,并且无法删除可执行文件.在允许卸载之前,如何检查它是否正在运行?

inno-setup

23
推荐指数
4
解决办法
2万
查看次数

安装成功后运行Application

如何创建允许用户在安装后运行应用程序的复选框.

inno-setup

23
推荐指数
4
解决办法
4万
查看次数

设置后"请求的操作需要提升"消息

我在inno安装程序中为一个应用程序创建了安装程序,我正在尝试在安装后运行应用程序,但是我在Windows 7下收到此消息:

请求的操作需要提升.

我知道这是因为管理员权限.有没有办法克服这个问题(除了以管理员身份运行setup.exe)?

privileges inno-setup

22
推荐指数
2
解决办法
1万
查看次数

在[RUN]部分中带引号的inno设置参数

我使用[run]部分使用支持commandeline的commandmerit.exe修改某些编解码器的优值.

所以语法是:

Commandmerit.exe "{E2B7DF46-38C5-11D5-91F6-00104BDB8FF9}" "0x800000"  
Run Code Online (Sandbox Code Playgroud)

{E2B7DF46-38C5-11D5-91F6-00104BDB8FF9}是编解码器的CLSID, 0x800000是新优点的值,但是当我把这一行放在[run]部分中时:

Filename: "{app}\Commandmerit.exe"; Parameters: ""{F8FC6C1F-DE81-41A8-90FF-0316FDD439FD}" "0x10000000""; WorkingDir: "{app}"
Run Code Online (Sandbox Code Playgroud)

显示流动错误:

参数的状态不匹配或错位.

如果我把这一行:

Filename: "{app}\Commandmerit.exe"; Parameters: """{F8FC6C1F-DE81-41A8-90FF-0316FDD439FD}" "0x10000000"""; WorkingDir: "{app}"
Run Code Online (Sandbox Code Playgroud)

显示流动错误:

未知的常数......如果......使用两个连续的"{"

如果我把这一行:

Filename: "{app}\Commandmerit.exe"; Parameters: """{{F8FC6C1F-DE81-41A8-90FF-0316FDD439FD}}" "0x10000000"""; WorkingDir: "{app}"
Run Code Online (Sandbox Code Playgroud)

然后没有显示错误,但似乎commandmerite.exe不理解参数,所以在安装程序完成后,优点仍然没有改变

configuration inno-setup

22
推荐指数
2
解决办法
1万
查看次数

从非托管进程卸载.NET DLL

我正在扩展我的Inno-Setup脚本,其中包含我最好在托管DLL中的C#中实现的代码.我已经知道如何从托管DLL导出方法作为在非托管进程中使用的函数.它可以通过IL编织来完成,并且有一些工具可以实现自动化:

因此,在导出后,我可以在Inno-Setup安装程序中从Pascal脚本调用我的函数.但是有一个问题:DLL似乎不再被卸载了.使用Inno-Setup UnloadDLL(...)无效,文件将保持锁定状态,直到安装程序退出.因此,安装程序等待2秒,然后无法从临时目录(或安装目录)中删除我的DLL文件.事实上,它确实存在,直到有人清理驱动器.

我知道无法再从AppDomain卸载托管程序集,除非整个AppDomain关闭(进程退出).但是对于非托管主机进程意味着什么呢?

是否有更好的方法允许Inno-Setup在加载和使用后卸载或删除我的DLL文件?

.net c# com inno-setup unmanaged

22
推荐指数
1
解决办法
1104
查看次数

如何修复maven错误JAVA_HOME环境变量未正确定义?

问题:

当我运行Inno安装批处理执行时,我收到Maven错误"JAVA_HOME环境变量未正确定义".但是,我能够在Inno Setup之外成功运行.(例如命令行,批处理文件,Vbs).我无法确定问题.

Inno Setup Invoked Prompt:

C:\>mvn -version
The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE
Run Code Online (Sandbox Code Playgroud)

常规命令提示符:

C:\>mvn -version
C:\
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T01:09:06+05:30)
Maven home: C:\Program Files\apache-maven-3.5.0\bin\..
Java version: 1.8.0_131, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_131\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
Run Code Online (Sandbox Code Playgroud)

来自InnoSetup的Maven Command:

[Files]
Source: "C:\@Setup\MavenInstaller.bat"; …
Run Code Online (Sandbox Code Playgroud)

inno-setup maven

22
推荐指数
12
解决办法
7万
查看次数

如何通过Innosetup删除桌面快捷方式

如何通过Innosetup删除桌面快捷方式?它是由以前的版本创建的,不再需要了.我尝试在[InstallDelete]中删除它

[InstallDelete]
Type: files; Name: {userdesktop}\Shortcut Name
Run Code Online (Sandbox Code Playgroud)

并删除CurStepChanged事件处理程序的"ssInstall"中的文件

DeleteFile(ExpandConstant('{userdesktop}\Shortcut Name'));
Run Code Online (Sandbox Code Playgroud)

但它们不起作用.任何建议表示赞赏!

inno-setup desktop-shortcut

21
推荐指数
1
解决办法
8528
查看次数

Windows 7上的桌面快捷方式图标错误(Inno Setup)

我用Inno Setup创建了一个安装程序.用于桌面快捷方式和开始菜单的图标嵌入在应用程序可执行文件中.

最初创建安装程序时,我没有设计团队的最终产品图标.当我完成安装程序时,我使用了临时图标.

一切都按原样运作,直到我更改了最后一个图标.现在桌面快捷方式和开始菜单图标始终显示旧图标,即使图标正确无处不在.

这是脚本的Icon声明部分.

[Icons]
Name: {group}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; WorkingDir: {app}
Name: {group}\{cm:UninstallProgram,{#MyAppName}}; Filename: {uninstallexe}; IconFilename: {app}\Icons\stop.ico
Name: {commondesktop}\{#MyAppVersionName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon; WorkingDir: {app}
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:(这是一个Windows 7系统)

如果我查看快捷方式属性,并选择"更改图标",我会看到正确的图标.重新选择它没有任何效果.我也尝试过选择一个不相关的图标然后重新选择正确的...仍然显示旧图标.

我遵循建议删除IconCache.db并重新启动机器,但这也没有效果.

世界上哪里有旧图标?安装程序中没有任何地方.

想法有人吗?

icons inno-setup windows-7 desktop-shortcut

21
推荐指数
2
解决办法
1万
查看次数