Articles of nsis

如何在nsis中运行windows命令?

我是一个新的nsis,我想从我的nsi文件运行一个Windows命令(subinacl),我该怎么做呢? 不知何故可能是“执行”? Thx的答案

在Linux上签名NSIS安装程序

目前,我在Linux机器上使用NSIS生成一个程序的安装程序。 NSIS二进制文件已经编译为Ubuntu,使用.nsi脚本没有任何困难。 但是,生成的setup.exe文件是无符号的。 这会给我们的用户造成可怕的警告,这些用户通过大多数常见的Web浏览器下载安装程序,以及运行时从Windows本身发出警告。 我们希望避免这些警告,除非我错过了某些东西,这需要使用Windows工具签名生成的setup.exe文件。 有没有办法在非Windows机器上做到这一点? 不幸的是,每个安装程序都是唯一的(根据客户的要求,不同的文件被捆绑在一起,并且包含一个唯一的ID),所以我不能在Windows机器上签名安装程序,然后上传它。

检查NSIS中的特定程序文件

我正在开发一个程序,只能在公司的电脑上安装,以防止它在其他电脑上运行。 所有的计算机唯一的共同点/区别是每个PC上的相同位置的一个.exe文件(即C:\ Program Files \ program_name \ program.exe)。 .exe并不总是运行,所以我不能使用nsProcesss。 有没有办法检查这个文件,然后安装,如果不存在,则中止?

NSIS安装程序:检测如果RequestExecutionLevel不起作用

我有 RequestExecutionLevel admin 在我的NSIS脚本。 问题是,如果Windows UAC设置为“从不通知”,并且普通用户运行安装程序,安装程序将尝试继续进行,而不会询问权限,并在尝试修改目录用户时不通过一个模糊的消息有权限。 我想要做的就是快速失败并立即显示一个对话框,说“请以pipe理员身份运行”。 我已经尝试添加下面的snippit我发现,但总是失败,除非用户实际上是一个pipe理员(但不是普通用户与pipe理员执行级别)。 UserInfo::GetAccountType pop $0 ${If} $0 != "admin" MessageBox mb_iconstop "Administrator rights required!" SetErrorLevel 740 ;ERROR_ELEVATION_REQUIRED Quit ${EndIf}

如何在安装内核驱动程序时禁用Windows来创build自动还原点?

我开发了NDIS 6.x LWF内核驱动程序,并使用NSIS 2.46将其包装到安装程序中。 我发现在安装之后,Windows会自动创build一个名为Device Driver Package Install: Nmap Project Network Service的系统还原点Device Driver Package Install: Nmap Project Network Service 。 但事实上,这个由Windows创build的还原点并不好。 我试着回滚到那个还原点,我的软件还在那里,包括驱动程序.sys文件和对系统的其他修改(如创build一个适配器如Windows Loopback Adapter )。 这是可以理解的,因为我的安装程序确实在安装驱动程序之前进行了一些修改,而Windows只在安装驱动程序时才将正确的快照。 所以我的修改之前的驱动程序安装不包括在内。 所以我决定在安装程序的所有实际安装步骤之前,自己创build一个还原点(使用由NSIS提供的SysRestore )。 我想禁用Windows自动为我的驱动程序创build还原点 。 什么是最好的做到这一点? 谢谢!

如何解决NSIS 3中的UAC_AsUser_ExecShell错误?

尝试使用与2.46 Unicode一起使用的NSI脚本,在新版本3中,此行: !insertmacro UAC_AsUser_ExecShell '' '$INSTDIR\test.exe' '–openbrowser' '' SW_SHOWNORMAL 产生以下错误: !undef: "_UAC_ParseDefineFlags_orin_f2" not defined! Error in macro _UAC_ParseDefineFlags_orin on macroline 12 Error in macro _UAC_ParseDefineFlags_Begin on macroline 6 Error in macro _UAC_ParseDefineFlagsToInt on macroline 1 Error in macro UAC_AsUser_Call on macroline 5 Error in macro UAC_AsUser_ExecShell on macroline 11 Error in script "c:\my.nsi" on line […]

NSIS隐藏窗口?

我如何隐藏安装程序本身?

从nullsoft脚本安装系统(nsis)执行命令提示符命令。

我想使用nsis做一个安装程序,但是我找不到一个例子,它显示了如何使用nsis在某些文件上执行命令提示符命令。 这是可能的,或者我完全偏离轨道?

安装程序没有检测到旧版本的NSIS

我使用NSIS为我的应用程序创build一个设置,并且需要检查它是否已经安装: Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" OutFile "MyAppInstaller.exe" InstallDir "$PROGRAMFILES\MyApp" InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "" ShowInstDetails show ShowUnInstDetails show Function .onInit ; Check to see if already installed ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME} ${PRODUCT_VERSION}" "UninstallString" IfFileExists $R0 +1 NotInstalled Messagebox MB_ICONQUESTION|MB_YESNO "MyApp 1.0 is already installed.Do you want to uninstall old version" IDNO Quit Exec $R0 Quit: Quit NotInstalled: […]

NSIS与GetParameters奇怪的行为

我与NSIS有一个奇怪的错误: !include "MUI2.nsh" !include "FileFunc.nsh" # To use GetParameters Name nsDialogs OutFile nsDialogs.exe Function .onInit ${GetParameters} $R0 MessageBox MB_OK "$R0" FunctionEnd !insertmacro MUI_PAGE_WELCOME Section DetailPrint "hello world" SectionEnd 如果我使用这个命令行 nsDialogs.exe /d=hello 消息框中说:“/ d = hello”按预期,但如果我使用 nsDialogs.exe /D=hello 消息框中显示“”,这是错误的。 为什么发生这种情况?