nsis

nsis打包

久未见 提交于 2019-12-04 06:13:22
[全部展开] [全部折叠] 介绍 NSIS 2 能够使你更容易地创建自定义用户界面的安装程序. Modern UI (新式用户界面) 提供的界面样式与最近版本的 Windows 所使用的向导的界面样式很相似. 它包括 NSIS 所有的标准页面 (如 组件选择页面、安装目录选择页面) 以及一些扩展页面。你可以在欢迎页面上提供一些安装相关的介绍, 在完成页面上提供一些选项, 允许用户选择在安装程序关闭时执行。(例如, 应用程序是否立即执行)。你也可以在完成页面为用户提供是否重启系统的选项。 屏幕截图 Modern UI 2.0 新版让自定义页面变得更加容易, 因为 更改 NSIS 的标准页面与 MUI 的扩展页面的方法是一样的。现在还可以用其它的 NSIS 插件来为 MUI 添加新页面。你很快就可以看到这类例子。 欢迎和完成页面不再需要 InstallOptions - 它已经被新的 nsDialogs 插件代替。你可以在直接脚本中用 nsDialogs 创建自定义页面、个性化内置的页面。 要升级 Modern UI 1.8 的脚本, 你需要这样处理: 插入 MUI2.nsh 头文件代替 MUI.nsh。 与 InstallOptions 相关的宏, 已经被分离在一个与 MUI 无关的独立的头文件中。如果你仍然用 InstallOptions 做自定义页面, 你需要插入

NSIS - printing to prompt during command line install

百般思念 提交于 2019-12-04 05:40:37
I'm making installers for windows using NSIS and have a number of custom install options that the user can specify using the command line, for example: installer.exe /IDPATH=c:\Program Files\Adobe\Adobe InDesign CS5 /S What I want to do is show these options to the person installing. I can easily enough parse the /? or /help parameters with ${GetParameters} and ${GetOptions}, but how do I do the actual printing to the command prompt? NSIS is a GUI program and does not really have the ability to write to stdout. On XP and later you can do this with the system plugin: System::Call 'kernel32:

NSIS Installer - Displaying different licences

99封情书 提交于 2019-12-04 05:35:59
I'm trying to modify an existing NSIS install script to allow for different licence files to be presented to the user depending on whether they are a new or existing user. I have pre-existing code which detects an existing install in the .onInit section. However I'm running into bumps trying to use the NSIS provided licence screen e.g. !InsertMacro MUI_PAGE_LICENSE Content\Licence.rtf I would like to be able to choose between Licence and Licence2.rtf (though they'll be renamed something representative in the final version). I've tried using selectable sections calling functions which nest the

nsis custom page sizes

不羁的心 提交于 2019-12-03 20:25:06
I am trying to create a page that is showing my website ( nsWeb::ShowWebInPage ). The problem is, it can't show the whole page. How can I define new sizes (height x width) to this page? This is a big task. Here are the steps for making it work, in a somewhat flexible way. Download Resource Hacker: http://www.angusj.com/resourcehacker/ Then decide if you want to edit the Unicode or the ANSI version of NSIS. You could do both, but why bother. Find your Program Files\NSIS folder first. This will be the BASE folder for the following directories in the next step if you are compiling for ANSI. If

Installing Chrome extension programmatically

▼魔方 西西 提交于 2019-12-03 20:08:35
I know this has been asked pretty much and I read them all but couldn't find anything relevant to my problem so asking again. I have made a simple chrome extension. Also packed it as crx using chrome. I want to install it programmatically using an nsis or C++ installer. Got some help from here http://www.chromium.org/administrators/pre-installed-extensions But I am not sure how can I get the ID of the extension that is used. As the ID for the same extension is different on chromes on different machine's, so one script wont work. Also registry method didn't worked for me. So whats the trick ?

How can I get NSIS to install and execute files from a temp directory?

£可爱£侵袭症+ 提交于 2019-12-03 17:45:52
问题 I'm using the following NSIS script: Name "My app wrapper" Outfile "MyAppSetup.exe" InstallDir $TEMP\MyApp\Install Function .onInit SetSilent silent FunctionEnd Section "" SetOutPath $TEMP\MyApp\Install File installer.msi File setup.exe Exec setup.exe SectionEnd The intention is that the installer will wrap up those two files, installer.msi and setup.exe (which is a bootstrapper to install prereqs and then call installer.msi) into the MyApp Setup.exe file. When MyAppSetup.exe is run, it

How do I create a shortcut (.lnk) with a relative target?

二次信任 提交于 2019-12-03 16:14:29
问题 I have an executable on my disk-on-key in dir\program\prog.exe I'd like to have a shortcut to the executable on the DoK's root directory, that is, prog.lnk would refer to dir\program\prog.exe. However, it seems that prog.lnk can't have a relative target. This is a problem when the DoK will have different drive letters assigned to it, depending on which PC it's connected to. Any suggestions, aside from the obvious one of putting prog.exe in the root dir? (ultimately, I'd like to do this at

NSIS - Silent Autoupdate Application

浪子不回头ぞ 提交于 2019-12-03 14:25:53
I have an NSIS install kit for my .net c# application. Is there a way to silently autoupdate my application, considering that I already downloaded the new update (new NSIS app version) to local computer ? Thanks! :) (In case you need to detect the command line /Autoupdate=yes) !include FileFunc.nsh !insertmacro GetParameters !insertmacro GetOptions Var CMD_ARGS Var CMD_RES Function .onInit # #installer stuff. # StrCpy $CMD_ARGS "" StrCpy $CMD_RES "no" ${GetParameters} $CMD_ARGS ClearErrors ${GetOptions} $CMD_ARGS /Autoupdate= $CMD_RES StrCmp $CMD_RES "yes" is_update is_not_update is_update:

How do I require user to uninstall previous version with NSIS

纵饮孤独 提交于 2019-12-03 12:02:51
I have just started using NSIS . It works very well but I find the documentation a bit unstructured. How do I require user to uninstall previous version before installing a new version with NSIS ? NSIS (Nullsoft Scriptable Install System) is an open source system to create Windows installers. NSIS is a great Windows Installer. Here is how I use NSIS to uninstall the current version while installing a new version of the same application. Add the following function to your NSIS script. Function .onInit Exec $INSTDIR\uninst.exe FunctionEnd Also you can check out this link on the NSIS wiki on

NSIS Installer with .NET 4.0

£可爱£侵袭症+ 提交于 2019-12-03 11:30:33
Is there a standard/preferred method for automatically downloading and installing the .NET 4.0 Framework from an NSIS installer, if the machine doesn't already have it? There are several examples for making this work on older versions of the framework, but seemingly none of them work for 4.0. Before I hack something together myself, I wanted to see if anyone here knew of something already out there. Thank you for your time. What is the problem? The solution should be the same as for any other .NET version. Something like this should work: ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework