Articles of nsis

使用NSIS将应用程序文件安装到标准的Windows用户

我有一个应用程序,需要一个SQLite数据库才能运行。 在我的NSIS脚本中,数据库被复制到用户Local / AppData文件夹。 如果安装该程序的用户是pipe理员用户,则此工作正常。 但是,如果一个标准用户试图安装程序,安装程序要求inputpipe理员密码(因为标准用户不能在Windows上安装程序)并且正在安装用户,现在正在切换到pipe理员,导致安装数据库pipe理员Local / AppData文件夹,而不是实际的用户AppData文件夹。 所以,实际上,当标准用户试图运行程序时,找不到数据库。 我不知道如何处理这种情况(最好的做法,如果有的话),并不能find答案。 安装程序是否应该将数据库放到公共场所,比如AllUsers,并且首先将数据库从那里复制到他们自己的AppData文件夹中? 所有用户文件夹的问题似乎是任何人都可以偷看它,并可能删除文件。

NSIS支持Linux和Solaris

NSIS是否支持Linux和Solaris? 我读了一个地方,我们可以在Linux上编译nsis脚本,但不能执行在任何其他平台上生成的.exe,但Windows。 有人能提供更多的信息吗?

可靠的方式从registry中获取Windows版本

我通过检查以下registry项来检查安装程序(使用NSIS)中的Windows版本: HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" "CurrentVersion" 根据这个post和MSDN的这个页面 ,Windows 10的currentVersion编号应该是10.0。 我刚刚安装了Windows 10 Pro Insider Preview,registry中给出的版本号仍然是6.3,而不是10.10。 有没有另一种可靠的方式在registry中检测Windows 10?

从NSIS中检测已经运行的Java应用程序

是的,这是很好的文件如何得到你的应用程序的exe文件的名称,看看它是否正在运行。 当有问题的应用程序是一个Java应用程序,正在运行的exe文件将始终是java.exe,所以这个方法是平坦的,因为可以有任何数量的java应用程序当前运行,所有java应用程序启动。 每个命令行参数都会有所不同,包括主类名称。 我需要知道的命令行参数为java.exe,所以我可以知道,只有一个说java.exe MyProgram将被终止。 我如何在NSIS中做到这一点?

检测是否已经使用NSIS安装了一个程序

我正在使用NSIS为程序创build安装程序,检测此程序是否已安装的最佳方法是什么? 另外,由于我从autorun.inf运行安装程序,如果find已安装的副本,是否可以立即退出安装程序? 有一个更好的方法吗?

使用NSIS检测目标卷是否为NTFS

我使用NSIS为需要在NTFS卷上运行的程序创build安装程序。 如何检测安装path是否在NTFS卷上,并相应地执行(显示帮助/警告消息)?

如何在NSIS安装程序的完成页上添加桌面快捷方式选项?

我正在尝试第一次使用NSIS Modern User Interface创build一个安装程序。 我想知道如何为用户添加一个选项(checkbox),以便除了已经存在的“运行XXXX”选项外,还可以select在“完成页面”(安装程序的最后一个屏幕)上创build桌面快捷方式。

获取%ALLISERSPROFILE%的NSISvariables%

是否有%ALLUSERSPROFILE%的NSISvariables? 如果不是,你知道如何使用NSIS代码获得这个环境variables? 注意:如果使用ReadEnvStr $R7 "ALLUSERSPROFILE" ,则$R7包含C:/ProgramData因为安装程序请求提升特权( RequestExecutionLevel admin )。 这太令人沮丧了!

你如何在NSIS中设置目录权限?

我试图build立一个使用Nullsoft安装系统的Windows安装程序,需要由pipe理员安装。 安装程序创build一个“日志”目录。 由于普通用户可以运行该应用程序,因此该目录需要由普通用户写入。 如何指定所有用户都有权限以NSIS脚本语言对该目录进行写访问? 我承认这听起来像是一个坏主意,但应用程序只是一个私人networking上只有less数人使用的内部应用程序。 我只需要保存的日志文件,以便我可以看到为什么应用程序坏了,如果有什么不愉快的事情发生。 用户不能成为pipe理员。

有没有办法事先testing,如果一个Windows EXE将失败,因为缺lessdll加载?

如果您尝试在Windows 8.1上安装vs2015可再发行组件而没有任何更新,则将无法安装。 但是,在安装过程中,guid会进入registry,所以如果运行一个程序检查registry中是否存在可再发行组件,那么您将通过该检查。 如果你试着运行一个用vs2015编译的程序,需要安装一些dll,你会得到一个popup窗口,说“程序不能启动,因为…”你知道这个演练。 我正在做一个安装程序(与NSIS)是有这个问题,我试图find一种方法来检测DLL缺less问题,然后我运行.exe并获得popup窗口。 有没有我可以运行的任何命令行工具,或者任何我可以调用的NSIS函数,都会在这个问题发生之前把这个问题告诉我? 或甚至检查是否正确安装vs2015 redistributable? (不必检查可再发行组件中是否存在每个文件,因为我不知道它们是什么。) 寻找任何想法来解决整体问题,不一定要特意过去这一个检查。 我希望可以有各种各样的方式可再发行组件可能无法安装。