nsis

Win32 installers: is there a way to write to HKU startup for each user?

懵懂的女人 提交于 2019-12-06 04:27:04
Is there a Windows installer that will add to startup for each user like <user>\Software\Microsoft\Windows\CurrentVersion\Run for each user on the system? I can't write to HKLM because the program being installed is hardcoded to work with HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run when toggling the start-on-login preference. I'm also wondering how to deal with the situation where a user is created after the application is installed. Is there a place where I can put a key in a default registry profile? Also what installer do you guys use? NSIS? Inno Setup? Advanced

uninstaller not deleting registry

那年仲夏 提交于 2019-12-06 03:35:36
Function Check32or64BitWindows ${If} ${RunningX64} strcpy $INSTDIR "$PROGRAMFILES64\${APP_FULL_PATH}" SetRegView 64 ${Else} SetRegView 32 strcpy $INSTDIR "$PROGRAMFILES32\${APP_FULL_PATH}" ${EndIf} FunctionEnd If an older version is detected then I execute ExecWait '"$INSTDIR\uninst.exe" /S' $0 My uninstall section: Section uninstall !define APP_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_VENDOR} ${APP_NAME}" !define APP_UNINST_ROOT_KEY "HKLM" DeleteRegKey ${APP_UNINST_ROOT_KEY} "${APP_UNINST_KEY}" SectionEnd Section -Post WriteRegStr ${APP_UNINST_ROOT_KEY} "${APP

Qt之打包发布(NSIS详解)

有些话、适合烂在心里 提交于 2019-12-05 18:52:48
发布方式 Qt发布的时候,通常使用两种方式: (1)静态编译 (2)动态编译 静态编译:把相关联的库一并引入可执行程序,虽然发布简单,但可执行程序较大。。。 动态编译:相关联的库,以dll的形式引用,不被包含进可执行程序,发布不方便,但可执行程序较小。。。 静态发布虽然不需要较多的dll,发布简单、方便,但是往往会牵扯到授权问题(详情请查看Qt LGPL授权 ),动态发布则可以避免。。。如果附带了Qt的dll,就相当于发布了Qt的dll,而这些库是属于Qt的,这足以保证使用者知道程序使用了LGPL版本的Qt(这部分还有待探讨)。 查找依赖项 1、检测可执行程序依赖模块 下载工具:Dependency Walker 打开可执行程序,检测依赖项 检测完成之后,将所需依赖库拷贝进去。。。再次进行检测,反复进行。 2、常用依赖库 (1)Qt模块库 Qt5Cored.dll Qt5Guid.dll Qt5Widgetsd.dll (2)ICU依赖库 icudt51.dll icuin51.dll icuuc51.dll (3)EGL依赖库 libEGLd.dll libGLESv2d.dll (4)插件库(Qt安装目录下即可找到D:\Software\Qt\Qt5.1.0\5.1.0\msvc2010\plugins\platforms) 图片支持库:imageformats 音频

Alternatives to WiX Burn Bootstrapper? (Can the InstallShield LE bootstrapper be used?)

自古美人都是妖i 提交于 2019-12-05 18:17:15
Background information: We used to have a Visual Studio 2010 based installer project, but our install situation got a lot more complicated, and with the projects going away anyway in 2012, we figured we'd start learning WiX / InstallShield LE . The Problem: InstallShield LE seems far too limited in the MSI files it creates to fit our needs -- (example, if you check the Office 2007 prerequisite, even though the error says you need "Office 2007 or later" it will fail if you have Office 2010 installed instead -- you can check one or the other, but you can't create an OR condition -- there's a lot

What is an effective way to grant permissions to a registry key using an NSIS installer?

笑着哭i 提交于 2019-12-05 17:40:18
I am attempting to use the AccessControl plugin in NSIS to set the permissions on a registry key. It is not working. After the installer runs, the All Users group does not have Full Control. I've created a sample below. Is there anything wrong here? Is there another mechanism to accomplish the same thing? I've also attempted to use the numeric form of the Everyone group S-1-1-0 I have not tried using "Everyone" yet. ; Create the key for local machine settings (could be a 32 bit or 64 bit location) SetRegView 32 WriteRegStr HKLM "SOFTWARE\MyApp" "x" "y" SetRegView 64 WriteRegStr HKLM "SOFTWARE

How do I capture the results of a YESNOCANCEL MessageBox without gotos/labels in NSIS installer scripting?

╄→гoц情女王★ 提交于 2019-12-05 13:04:59
I would like to know how to use a YESNOCANCEL MessageBox in conjunction with IF logic from LogicLib.nsh in NSIS installer scripting to avoid having to use labels and gotos. Is there any way to capture the result of a MessageBox in a variable of some kind? Also, I know there are better things than NSIS out there, but using something else isn't a possibility at this point. =( Note the {WHAT GOES HERE??} in the below code. If this was just an If...Else... it would work fine. Thanks for the help ${If} ${Cmd} `MessageBox MB_YESNOCANCEL|MB_ICONEXCLAMATION "PROGRAM X is already installed. Click YES

Can .bat file execute an sql query and return a value?

落爺英雄遲暮 提交于 2019-12-05 09:37:52
How can I call a query from a .bat file? (say my query is: select version from system). Can my .bat file save the output that this query returns? I wanna use this output in my NSIS script. Patrick Cuff For Oracle: How can I issue a single command from the command line through sql plus? @echo select version from system; | sqlplus username/password@database You can either pipe the output to a file and use that, or wrap this in a for command to parse the output within your batch file. EDIT: This answer is for SQL Server, not Oracle. (It wasn't immediately clear when the question was posted). You

NSIS Installer Name

这一生的挚爱 提交于 2019-12-05 04:53:08
Is it possible to set the nsis installer file generated when compiling the installer? something like: makensis /ExeFile:myInstall-v4.1.2.3.exe install.nsi That would be keen. You can define a symbol on the command line using the /D switch like so: makensis /DMyInstallerName="myInstall-v4.1.2.3.exe" install.nsi Then in your install script: !ifdef MyInstallerName OutFile "${MyInstallerName}" !else OutFile "myInstall.exe" !endif 来源: https://stackoverflow.com/questions/2788822/nsis-installer-name

Checking if the application is running in NSIS before uninstalling

与世无争的帅哥 提交于 2019-12-05 04:52:24
I am new to NSIS, and I need to know that in the uninstaller, how I can check if the application (which is in C++) is running and close it before uninstalling. Here is a slightly more friendly version for using NSProcess that requests the app to close rather than terminates it (Owen's answer) ${nsProcess::FindProcess} "${APP_EXE}" $R0 ${If} $R0 == 0 DetailPrint "${AppName} is running. Closing it down" ${nsProcess::CloseProcess} "${APP_EXE}" $R0 DetailPrint "Waiting for ${AppName} to close" Sleep 2000 ${Else} DetailPrint "${APP_EXE} was not found to be running" ${EndIf} ${nsProcess::Unload}

nsis custom page sizes

老子叫甜甜 提交于 2019-12-05 02:54:26
问题 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? 回答1: 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