NSIS静默安装(通过代码启动)。
我正在尝试构建一个将执行以下操作的NSIS安装程序: 1正常运行时,它将使用带有通常选择的安装程序安装应用程序. 2使用/s开关安装时,安装静音安装时,如果显示UI,则可以.但是它应该是自动的. 在我看来,安装程序在运行然后正确启动应用程序时"工作".但是它没有更新任何内容,它几乎是运行的,但没有复制任何文件. 当它是无声安装时,它是由以下代码(应用程序更新本身)启动的 ProcessStartInfo Pro = new ProcessStartInfo(); Pro.Verb = "runas"; Pro.UseShellExecute = true; Pro.FileName = gDownloadedFileName; Pro.Arguments = "/S"; Pro.WindowStyle = ProcessWindowStyle.Normal; Pro.CreateNoWindow = t
32 2024-04-24
编程技术问答社区
在MUI NSI安装程序中点击按钮时填充目录文本框 , 使用ButtonEvent插件
我已经在安装程序的MUI目录页面上使用Resource Hacker添加了自定义按钮,现在我希望在单击按钮时,然后用户输入installdir的默认文本框(已安装应用程序的路径),为充满了一些指定的文本.请帮助我使用代码? 我正在使用ButtOneVent插件,但是我不知道在事件处理程序中编写什么代码.当前,当单击按钮以确保事件正在工作时,目前只是显示一个消息框. 请帮助. !define IDC_BUTTON_SETPATH 1200 (1200 is the ID OF THE BUTTON ADDED from Resource hacker) ;Pages !insertmacro MUI_PAGE_WELCOME !define MUI_PAGE_CUSTOMFUNCTION_SHOW DirectoryShow !define MUI_PAGE_CUSTOMFUNCTION_LEAVE DirectoryLeave !insertmacr
14 2024-04-05
编程技术问答社区
为Python创建一个Windows安装程序+一组依赖项
我需要为Windows创建一个安装程序,该安装程序应该能够安装Python解释器的特定版本(2.7)加上一个依赖项,例如Ipython,Numpy,Pandas等. . 基本上,这是Active State为其主动python分布所做的事情:一个包括解释器 + deps的单个捆绑. 不是Windows用户,我不确定从哪里开始,除了查看 nsis ((这可能有帮助吗?) 解决方案 我建议使用我也用来构建Python版本的包装工具,该版本在 tools/msi/msi.py .在Python源(或安装)顶部解开其他依赖项,然后调整MSI.PY以拾取要包装的所有其他文件.您应该调整显示字符串,以表明这确实是一个单独的python分布. 其他解决方案 对于Windows,有 pynsist .它在内部使用NSIS,并捆绑python,因此您不必这样做.它带有有用的示例. 免责声明:我还没有尝试过pynsist,但会很快. 其他解决方案 如果要包装Pytho
14 2024-04-05
编程技术问答社区
如何创建一个对 Program Files 和 Program Files(x86) 都有效的批处理文件?
我创建了一个批处理文件,该文件将.sql文件自动复制到已安装的jasper服务器的路径(可能是任何软件安装目录). 这是我的批次脚本 - c:\ progra〜2 \ jasper〜1.0 \ mysql \ bin \ mysql.exe -u root -proot -proot 在程序文件中安装jasper时正在工作(x86). 如何将其推广到程序文件和程序文件(x86). 解决方案 您想使用环境变量查找类似的内容.在32位窗口上,%ProgramFiles%是您的朋友. 在64位窗口上,情况有些复杂,因为可以在%ProgramFiles%和%ProgramFiles(x86)%中安装应用程序. . 如果您无法以其他方式查找Jasper的位置(注册表?已安装程序设置?),您最好的选择是在两个地方查看,然后将您找到预期目录的位置. 编辑 看到 nsis 标签 - 您在创建安装程序吗?在这种情况下,常数 $ programFiles 可能有用.
22 2024-03-29
编程技术问答社区
NSIS编译-Mysql未被识别为可操作程序-为什么NsExec::ExecToLog语句失败?
我一直盯着这个直到几乎失明!检查路径环境,在可能的情况下使用DOS短名.以下是脚本,带有测试结果和评论. 在提交以下内容之前,我搜索了许多帖子. ----测试01-04关注 ; var $ sysdir = c:\ windows \ system32 ; =============================================== =================== [test-01] var文件夹 strcpy $文件夹" $ programfiles64 \ mysql \ mysql Server 5.7" [test-stmt-01] nsexec :: exectolog'" $ sysdir \ cmd.exe"/c" $ folder \ bin \ bin \ mysql.exe" -u $ $ login -p -e show databases;'$ 0 [test-err-01] 'c:\ program
14 2024-03-29
编程技术问答社区
通过CMake管理NSIS CreateShortCut方法的快捷方式参数
首先对所有人嗨! 我想创建一个不会提示DOS窗口的批处理文件的快捷方式.为此,我已经看到以下命令效果很好: wscript.exe invisible.vbs my_batch_file.bat 我的问题是我想通过CMAKE和NSIS使用此命令创建快捷方式.我的问题是,在cmakelists.txt文件中,我似乎不能在" wscript.exe"之后给出一个以上的参数: list(APPEND CPACK_NSIS_CREATE_ICONS " CreateShortCut '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\link.lnk' 'wscript.exe' 'invisible.vbs my_batch_file.bat' icon.ico 0 SW_SHOWMINIMIZED ") 以及" Invisible.vbs"和" my_batch_file.bat"之间的空间并未如我期望的那样解析(即
6 2024-03-29
编程技术问答社区
在NSIS下执行postgre dbinit的批处理文件给出了拒绝的权限
按照我的上一个问题我现在,试图执行批处理文件槽NSIS代码,以便在解压缩后成功设置Postgres安装.批处理文件包含用于初始化数据库的命令,但由于权限限制而失败.我在Win7 X64 PC上.我的用户帐户是管理员,我使用Run as adminitrator选项启动setup.exe.这是我遇到的错误: c:\ program文件(x86)\ poker Assistant> CD" PGSQL \ bin" C:\ Program Files(X86)\ Poker Assistant \ PGSQL \ bin> initdb -u Postgres -A 密码 -pwfile" pwd.txt" -e utf8 -d" .. \ data"属于此数据库系统的文件将由用户" Mandarinite"所有. 此用户还必须拥有服务器流程. 数据库群集将用语言环境初始化 " Bulgarian_Bulgaria.1251". initdb:找不到合适的文本搜索 语言环境
4 2024-03-29
编程技术问答社区
.bat文件能否执行一个sql查询并返回一个值?
如何从.bat文件调用查询? (假设我的查询是:从系统中选择版本). 我的.bat文件可以保存此查询返回的输出吗?我想在我的NSIS脚本中使用此输出. 解决方案 for Oracle: 我如何通过sql plus从命令行发出单个命令? @echo select version from system; | sqlplus username/password@database 您可以将输出输送到文件并使用该输出,或将其包装在for命令中以解析批处理文件中的输出. 越 您可能需要检查 SQLCMD实用程序可让您在命令提示符下输入Transact-SQL语句,系统过程和脚本文件.下面的示例在SQLCMD启动时执行查询,然后立即退出.可以执行多种降压的查询: sqlcmd -d AdventureWorks -Q "SELECT FirstName, LastName FROM Person.Contact WHERE LastName LIKE 'Wh
20 2024-03-29
编程技术问答社区
在NSIS安装程序中执行批处理文件
我有一个批处理文件,需要在NSIS安装程序中运行.它必须在提取所有文件后运行(我想这很明显,否则批处理文件还不存在). 我尝试将MUI_PAGE_CUSTOMFUNCTICT_PRE与完成页面一起运行以运行它,但是当它到达脚本的那部分时,它似乎会跳过它.以下是我调用的方式. ;;Finish Page !define MUI_PAGE_CUSTOMFUNCTION_PRE Done !insertmacro MUI_PAGE_FINISH Function Done ExecWait '"$INSTDIR\BatchFile" "$INSTDIR" "$DATA_FOLDER"' FunctionEnd 事先感谢您的帮助. 更新 我现在尝试使用以下内容: ExpandEnvStrings $0 %COMSPEC% ExecWait '"$0" /C "$INSTDIR\batch.bat" "$INSTDIR" "$DATA_FOLDER"'
16 2024-03-29
编程技术问答社区
NSIS-沉默的自动更新应用程序
我有一个NSIS安装套件,用于我的.NET C#应用程序. 考虑到我已经下载了新的更新(新的NSIS App版本)? 谢谢! :) 解决方案 (如果您需要检测命令行/自动UPDATE =是) ) !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_u
32 2024-03-21
编程技术问答社区
为Python桌面应用程序提供安装和更新程序
我正在构建一个带有Python的桌面应用程序,并将其包装到带Pyinstaller的Exe中. 我想使用安装程序运送我的应用程序,还为Windows的Google Chrome,Dropbox或GitHub等软件提供自动和无声的更新. 我找到了以下软件可以执行此操作: Google Omaha - 不提供服务器 github shimmer - 完美的解决方案,但Paul告诉我它尚无法处理非.NET应用程序 winsparkle - netsparkle - 顾名思义,非常注重.net focused nsis installer. 我试图找到最简单的解决方案. 解决方案 CloudMatrix家伙有一套工具来解决该问题. esky 是一个与常见的python"包装"框架兼容的冷冻应用程序的自动升级框架. 签名试图确保应用程序在签名后不会修改应用程序,并最大程度地减少入侵的Windows UAC对话框. myppy 旨在使您与Linux EG上的基
16 2024-03-21
编程技术问答社区
NSIS自动和无声更新
我目前正在构建一个应用程序,并希望为其提供一个安装程序和自动静音更新. Dropbox,Spotify和Chrome都在不引起任何注意的情况下进行更新.因此,我查看了AppData中的Dropbox漫游文件夹,并找到了一个名为dropboxupdatehelper.exe的文件,上面有NSIS图标.在Spotify文件夹中,我只能在术语中找到一个spotifyHelper.exe并提及NSIS. 是否有关于如何在漫游文件夹中安装应用程序并具有无声自动更新器的教程?我没有固定在NSIS上,但希望使用开源和免费安装程序. 解决方案 nsis具有 inetc插件可以用来从Internet下载内容但是我不知道那里是否有一个自动更新教程.您可能还想看看 vpatch Plugin ... 这里有很多变量要考虑: 您的主要应用程序是否应该查找更新或仅在应用程序(或Windows)启动上运行更新程序,以便检查? 是服务器上签名的文件,还是您还有其他方法可以检测无效/损
56 2024-03-21
编程技术问答社区
Inno Setup能否发送键盘和鼠标的按压,如果不能,如何使用安装程序来实现?
我是[Microsoft Windows]安装程序和 inno设置但我需要要知道是否可以使用Inno设置(或等效)自动化基于GUI的Windows程序的输入,例如,例如通过单击菜单并选择子项目,例如? 我知道 autoit 和 autohotkey ,以及 NSIS 强烈推荐作为软件包装器/安装程序,我也喜欢讨价还价的一些帕斯卡(Pascal)编程的想法;) ) 最欢迎任何想法或想法: - ) 解决方案 我同意@Deanna, SendInput 功能是模拟您可以获得的用户输入的最佳功能.在以下脚本中,我显示了如何模拟鼠标在绝对屏幕位置(以像素为单位)上的单击.作为一个例子,我试图通过 help/the Inno设置菜单项显示Inno设置的关于框甚至点击该菜单项.因此,这只是鼠标部分(只有有限的功能您可以获得).以此为证明,可以从Inno设置中模拟用户输入: [Setup] AppName=My Program AppVersion=1.5 DefaultDi
20 2024-03-21
编程技术问答社区
是否可以从Java代码中调用Ant或NSIS脚本?
是否可以在运行时从Java代码编程地调用ANT或NSIS脚本?如果是这样,如何? 解决方案 您 can 从Java代码调用ANT脚本. 请参阅本文and File buildFile = new File("build.xml"); Project p = new Project(); p.setUserProperty("ant.file", buildFile.getAbsolutePath()); p.init(); ProjectHelper helper = ProjectHelper.getProjectHelper(); p.addReference("ant.projectHelper", helper); helper.parse(p, buildFile); p.executeTarget(p.getDefaultTarget()); 更新 我尝试使用以下蚂蚁文件,它没有"告诉"任何内容(没有控制台输出),但是它工作:该文件确实已移动
20 2024-02-26
编程技术问答社区
NSIS安装程序没有管理员特权
我正在尝试将NSIS安装程序配置为无需管理特权运行.这可能吗? 我正在作为非Admin用户进行测试,因为某些客户没有这些特权. NSIS中的哪些设置导致安装程序需要管理员特权? 我尝试了RequestExecutionLevel none的所有变体,没有欢乐. 解决方案 要使您的安装程序在没有管理特权的情况下运行,请使用以下操作: RequestExecutionLevel user 使用admin使安装程序需要管理特权. 源自参考,none,none具有相同的效果(重点): Windows Vista/7自动确定NSIS安装程序,并决定管理员特权.因此, 无和 admin 几乎具有相同的效果.
54 2024-01-19
编程技术问答社区
使用NSIS安装程序向注册表键授予权限的有效方法是什么?
我正在尝试使用我在下面创建了一个示例.这里有什么错吗?还有另一种实现同一件事的机制吗?我还尝试使用数字表格我还没有尝试使用"每个人". ; 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\MyApp" "x" "y" ; Give all authenticated users (BUILTIN\Users) full access on the registry key HKEY_LOCAL_MACHINE\Software\MyApp SetRegView 32 AccessControl::GrantOnRegKey HKLM "SOFTW
40 2024-01-09
编程技术问答社区
NSIS-重建安装程序exe文件
假设我使用NSIS创建了一个安装EXE. EXE是一个压缩的(7ZIP也许)文件,其中包含在新鲜机器上安装应用程序的所有内容,它包含大EXE文件(例如.NET Runtimes,MySQL Server Installer等).我必须通过互联网将大EXE文件发送给另一个人. 为了节省时间和带宽,我想删除包含的大文件;我可以使用7ZIP打开并提取原始EXE中的所有文件,删除大的文件,再次使用7ZIP重新拉紧.这现在可以工作. 另一方将下载减少的zpipted文件,但随后必须以某种方式重新引入大文件,重新创建EXE安装程序. 我不知道该如何实现.我已经尝试了帕克(Paquet Builder),但没有成功. 那可能吗? 解决方案 我认为这是不可能的.但是我认为我还有另一个解决方案.您为什么不简单地执行NSIS捆绑包的单独的可执行文件(例如.NET运行时等)?这样,您就无需将它们包括在产生的捆绑包中.只需告诉用户下载它们并将其放置在适当的位置即可.这比指示他们从碎片中
18 2024-01-09
编程技术问答社区
如何检测安装的是哪种JRE-32位与64位?
在使用NSIS安装程序安装时,我需要检查系统上安装了哪个JRE(32位VS 64位).我已经知道我可以检查系统属性" sun.arch.data.model",但这是特定于阳光的.我想知道是否有标准解决方案. 解决方案 可以使用" os.arch "属性: System.getProperty("os.arch"); " OS"部分似乎有点不当,或者原始设计师并不希望JVM在他们没有写的架构上运行.返回值似乎是不一致.. NetBeans安装程序团队是解决了JVM vs OS架构的问题. Quote: x64位:Java和System 跟踪为问题143434 . 当前我们使用x64位JVM到 确定是否系统(因此 Platform.gethardwarearch())为64位 或不.这绝对是错误的,因为 可以在32位JVM上运行 64位系统.我们应该找到一个 检查OS真实64位的解决方案 如果在32位JVM上运行. 对于Windows,可以使用W
14 2024-01-08
编程技术问答社区
用NSIS检查.NET4.5+的情况
全部,我知道以下方法以检查NSIS中的框架版本.对于.net4.0+我当前使用 Function IsDotNetInstalled StrCpy $0 "0" StrCpy $1 "SOFTWARE\Microsoft\.NETFramework" ; Registry entry to look in. StrCpy $2 0 StartEnum: ; Enumerate the versions installed. EnumRegKey $3 HKLM "$1\policy" $2 ; If we don't find any versions installed, it's not here. StrCmp $3 "" noDotNet notEmpty ; We found something. notEmpty: ; Find out if the RegKey s
16 2024-01-08
编程技术问答社区
使用.NET 4.0的NSIS安装程序
是否有一种标准/首选方法可以自动从NSIS安装程序下载和安装.NET 4.0框架,如果机器还没有? 有几个示例可以在框架的较旧版本上进行这项工作,但似乎没有一个用于4.0.在我自己分解之前,我想看看这里是否有人知道那里已经有东西. 谢谢您的时间. 解决方案 有什么问题?解决方案应与任何其他.NET版本相同. 类似的东西应该有效: ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client" Install IntOp $8 $0 & 1 结果为reg $ 8 用Full替换Full检测非客户版本. 其他解决方案 为什么不简单地如果您认为与安装程序打包的50 MB太多,则,如果您列出了尝试使用过的内容,这将有所帮助. (我怀疑您可能已经看到了第三个链接,而Lang Spec会将您旅行吗?)
36 2024-01-07
编程技术问答社区