首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在windows启动时使用NSIS安装程序启动包装的exe。

NSIS(Nullsoft Scriptable Install System)是一个开源的Windows安装程序制作工具,它允许开发者通过脚本语言来创建安装程序。以下是关于在Windows启动时使用NSIS安装程序启动包装的exe的基础概念、优势、类型、应用场景以及可能遇到的问题和解决方法。

基础概念

NSIS使用一种类似于C语言的脚本语言来定义安装程序的行为。通过编写脚本,可以指定安装程序的安装步骤、文件复制、注册表修改、创建快捷方式等操作。

优势

  1. 开源免费:NSIS是完全免费的,适合个人和小型团队使用。
  2. 高度可定制:通过脚本可以精确控制安装过程的每一个细节。
  3. 轻量级:生成的安装程序体积小,运行速度快。
  4. 跨平台:虽然主要用于Windows,但可以在多种编译环境下生成安装程序。

类型

NSIS安装程序通常分为几个主要部分:

  • 安装程序(Setup.exe):用户实际运行的安装文件。
  • 卸载程序(Uninstall.exe):用于卸载软件。
  • 安装脚本(.nsi文件):定义安装过程的脚本文件。

应用场景

NSIS广泛应用于各种Windows应用程序的安装包制作,特别是那些需要简单安装过程的小型到中型软件项目。

启动时运行exe的问题及解决方法

问题描述

有时需要在Windows启动时自动运行某个exe文件,这通常涉及到修改注册表或创建启动文件夹项。

解决方法

  1. 修改注册表: 在NSIS脚本中添加以下代码来创建注册表项,使程序在启动时运行:
  2. 修改注册表: 在NSIS脚本中添加以下代码来创建注册表项,使程序在启动时运行:
  3. 创建启动文件夹快捷方式: 另一种方法是创建一个指向目标exe的快捷方式,并将其放入用户的启动文件夹中:
  4. 创建启动文件夹快捷方式: 另一种方法是创建一个指向目标exe的快捷方式,并将其放入用户的启动文件夹中:

示例代码

以下是一个简单的NSIS脚本示例,展示了如何在安装过程中设置程序在Windows启动时运行:

代码语言:txt
复制
; 定义安装程序的基本信息
Name "MyApp"
OutFile "Setup.exe"
InstallDir "$PROGRAMFILES\MyApp"

; 页面设置
Page directory
Page instfiles

; 安装过程
Section "Install"
    ; 设置安装目录
    SetOutPath $INSTDIR
    ; 复制文件
    File /r "src\*.*"
    ; 创建注册表项以实现启动时运行
    WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "MyApp" "$INSTDIR\myapp.exe"
    ; 创建卸载程序
    WriteUninstaller "$INSTDIR\Uninstall.exe"
SectionEnd

; 卸载过程
Section "Uninstall"
    ; 删除文件和文件夹
    RMDir /r "$INSTDIR"
    ; 删除注册表项
    DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "MyApp"
SectionEnd

通过上述脚本,可以在安装时自动将程序添加到Windows启动项中,并在卸载时清理相关设置。

希望这些信息能帮助你理解和使用NSIS来创建Windows启动时运行的安装程序。如果有其他具体问题或需要进一步的帮助,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 如何改善应用程序在 Linux 中的启动时间

    大多数 Linux 发行版在默认配置下已经足够快了。但是,我们仍然可以借助一些额外的应用程序和方法让它们启动更快一点。其中一个可用的这种应用程序就是 Preload。...简而言之,一旦安装了 Preload,你使用较为频繁的应用程序将可能加载的更快。 在这篇详细的教程中,我们将去了解如何安装和使用 Preload,以改善应用程序在 Linux 中的启动时间。...在 Linux 中使用 Preload 改善应用程序启动时间 Preload 可以在 AUR 上找到。...因此,你可以像下面一样,使用 APT 包管理器去安装它。 $ sudo apt-get install preload Preload 安装完成后,重新启动你的系统。...因为 SSD 的访问时间比起一般的硬盘来要快的多,因此,使用 Preload 是没有意义的。 Preload 显著影响启动时间。因为更多的应用程序要被预读到内存中,这将让你的系统启动运行时间更长。

    3.8K10

    Win32 程序在启动时激活前一个启动程序的窗口

    Win32 程序在启动时激活前一个启动程序的窗口 发布于 2018-08-05 13:48 更新于 2018...不过,传统 Win32 程序可就要自己来控制单实例了。 本文介绍简单的几个 Win32 方法调用,使 Win32 程序也支持单实例。...---- 激活之前进程的窗口 我们可以通过进程名称找到此前已经启动过的进程实例,如果发现,就激活它的窗口。...例如在 Windows 10 中,此窗口可能在其他桌面上。那么我们需要添加额外的代码将其显示出来。...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布

    91520

    基于Python的远程管理工具(RAT) – Stitch

    你可以根据自己的需要,来选择绑定的IP及监听端口。 你还可以设置是否在目标系统启动时,向你发送系统信息邮件,以及是否开启键盘记录。...stitchgen 命令 “stitchgen”命令为用户提供了,在Windows上创建NSIS 安装程序和在posix机器上创建Makeself 安装程序的选项。...对于Windows,安装程序会将payload进行打包,以躲避防火墙的检测,保证payload的持久有效性。而对于Mac OSX和Linux,安装程序则直接上传paylaod,并尝试持久化权限。...想要创建NSIS安装程序,则必须下载安装NSIS。...维基(Wiki ) Stitch 使用文档 安装环境 Python 2.7 运行对应操作系统安装命令: Pycrypto Requests Colorama PIL Windows 支持 Py2exe

    3.8K50

    将独立的 Python 网络应用程序分发给非技术用户

    该应用程序将在托管的网站上运行,但我们也希望用户能够下载一个自包含的应用程序,以便他们可以在本地安装,以获得更好的性能或他们根本无法在教室中使用互联网连接。...我们目前的想法是使用 NSIS 创建一个包含 Python 和 Python-LDAP 作为 MSI 的安装程序,然后注册我们自己的简单的基于 Python 的 Web 服务器作为 Windows 服务...解决方案方法一使用 NSIS 是一个好主意,但我们建议使用诸如 pyinstaller(我们个人最喜欢的,其他选择是 bb_freeze 和 py2exe)这样的“打包器”来在使用 NSIS 之前创建...cx_Freeze 可以将 Python 脚本转换为名为“my_app.exe”的可执行文件,然后可以使用 NSIS 将可执行文件打包成名为“my_app-setup.exe”的安装程序,如下所示:1....nsis-makensis my_app.nsi这将创建一个名为 my_app-setup.exe 的安装程序。3. 使用安装程序安装应用程序。my_app-setup.exe这将安装应用程序。

    9810

    NSIS 打包 Electron 项目的注意事项(拖拽、权限、兼容性等)

    我自己本人不做 Electron 的开发,但有一位合作伙伴在使用 NSIS 打包 Electron 应用的时候遇到了一些问题,主要问题有以下几个,先记录下来,然后追个击破。...) 打包后应用第一次启动无法使用拖拽功能 脚本设置启动程序兼容性 设置程序兼容性有两种方式,一种是手动右键修改,但这种方式明显不可能让用户自己去操作,所以我们需要另外一种方式就是在安装程序后自动写入一个注册表...,告诉系统我们启动自己的应用时使用 Windows 7 兼容模式运行,示例注册表如下: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\...WriteRegStr 方法写入到了注册表中,给它设置的值是 WIN7RTM,这样应用在启动的时候,就会以 Windows 7 兼容性模式运行了。...Quit no_run: FunctionEnd 打包后无法使用拖拽功能 经过排查发现,NSIS 打包后安装包程序默认是以管理员身份启动的,第一次安装完成后自动启动应用时会继承安装包的权限(管理员

    1.6K20

    常用软件打包类型及静默安装参数(nsis|msi|InstallShield|Inno)

    打包的文件使用 /q 是不行的,查了相关的资料得使用 /S (这里要大写),其它格式的文件参考下面的内容: 现在常用的制作安装程序的软件有:Microsoft Windows Installer,Windows...为了阻止某些程序安装成功后自动重启动(例如 Kerio Personal Firewall 4),你可以在 /qn 或者 /qb 参数后使用 REBOOT=Suppress 标记。...有一点非常重要,在安装结束后不能选择“立刻重启动计算机”。如果选了,在批处理文件中的其他命令就会因为计算机重启动而无法执行。...3、在安装程序运行完毕后,打开你的 C:\Windows(或者 C:\WINNT)目录,然后找到 setup.iss 文件,把这个文件和你将要静默安装的程序 setup.exe 保存在同一个目录中。...很多用NSIS打包的程序在安装的时候都有类似的窗口,例如 Winamp 和 CDex 。

    16K23

    Windows下程序启动时出现0xc000007b错误的解决方案

    一、背景介绍       不久前用Qt开发了一款小工具在公司使用,Debug运行时一切正常。...我知道Qt应用程序在发布的时候,需要将相关DLL都拷贝到同一个目录下,还得把平台插件文件夹也加进来。因此,整个发布后的程序组织结构如下:       因此排除了DLL缺失的问题。那么可能是什么原因呢?...在Google中搜索错误代码0xc000007b,不少帖子提示是库的版本不一致。有可能是因为在64位程序中引用了32位的库,或者在32位的程序中引入了64位的库导致出错的。怎么确定呢?...使用Dependency Walker即可查看:       可以看到,我的程序是64位版本的,但是确实引用了两个32位的库。那么,知道了原因了就好办了。...一般是因为粗心而导致链接到了版本不一致的库,但是在Debug和编译时都不报错,略感无语。  (2)方案二:对于第一种方案不适用的情况,必须采用第二种方案了。本人在第二种情况中纠缠了多时。

    3.2K70

    Linux的GUI程序在Windows上使用

    一,在linux机上安装xorg-x11-xauth 如果没装,启动GUI程序会提示Canno open display。...yes 三、在Windows客户端上安装X11 Server程序 Xming是运行于Windows下的X 服务器,下载Xming:http://sourceforge.net/projects/xming...安装完成后,点击启动即可 四、在Windows上的ssh客户端设置 客户端需要设置x11转发,常用secureCRT和putty,根据自己所用的客户端设置即可。...五、安装字体文件 如果发现无法显示文字,有可能是服务器上没安装字体文件,解决方法是到yum上装几个 yum search fonts yum install wqy-zenhei-fonts.noarch...yum install xorg-x11-fonts-100dpi.noarch 最后,登录devnet tlinux服务器,运行一个GUI程序,就可以在windows上看到!

    4.5K50

    重磅:SRS 5.0正式支持Windows平台和安装引导程式

    安装好环境后,在Cygwin终端中执行命令: git checkout develop ./configure make 这样就可以编译出Windows版本的SRS了,可执行文件在....Install from binary 从5.0.89之后,SRS 5.0每个版本release[4],都会附带Windows的安装包。你可以下载后,快速安装和使用SRS。...下面是一些安装包的链接,注意你应该用最新版本,而不是使用某个固定版本release[5]: • 最新版本下载[6] • SRS-Windows-x86_64-5.0.89-setup.exe[7] • ...安装后,使用管理员权限启动SRS: 使用FFmpeg或OBS推流到SRS: ffmpeg -re -i ~/srs/doc/source.flv -c copy -f flv rtmp://win11...Package by NSIS 如果你需要自己修改代码并打包,可以使用NSIS[10],在Cygwin终端中执行命令: "/cygdrive/c/Program Files (x86)/NSIS/makensis.exe

    1.6K41

    Gradle的使用——在windows上面安装gradle

    Gradle的使用——在windows上面安装gradle 简介 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。...Gradle 构建脚本使用的是 Groovy 或 Kotlin 的特定领域语言来编写的,而不是传统的XML。...简述 在开始使用gradle之前,我们需要进行安装,下面是我进行整理的安装方式,便于大家快速安装。...环境 windows系统 已安装openjdk11 gradle官方 正文 1、下载发行包 登录gradle官方进行下载最新版发行包 这里我们进行下载二进制包 2、解压到指定目录 将下载下来的安装包放到一个特定目录进行解压...,这里我放在了java安装目录中 注:这里如果在C盘可能出现管理员权限问题,可以在桌面进行现解压再移动进来即可,或选择存放其他的地方。

    1.1K10

    PySpark在windows下的安装及使用

    Path配置图片测试安装情况,cmd输入spark-shell图片出现Welcome to Spark 表示安装成功,如果没有装Hadoop,则会出现上面一个报错,但不影响Spark的安装三、hadoop...安装官网下载https://hadoop.apache.org/releases.html图片解压后配置相关环境图片系统变量新增HADOOP_HOME图片Path配置图片四、winutils安装windows...环境下还需要装个东西来替换掉hadoop里的bin文件才行图片下载地址:https://github.com/steveloughran/winutils使用了和hadoop相近的版本,测试没问题直接复制替换图片再次测试...:spark-shell图片五、pyspark使用# 包的安装pip install pyspark -i https://pypi.doubanio.com/simple/pyspark测试使用from...spark前增加spark的查找(直接放在代码最顶上)import findsparkfindspark.init()测试结果:F:\Anaconda3\python.exe D:/PycharmProjects

    1.4K10

    NSIS 打包脚本基础

    简介 NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。...这如其名字所指出的那样,NSIS 是通过它的脚本语言来描述安装程序的行为和逻辑的。NSIS 的脚本语言和通常的编程语言有类似的结构和语法,但它是为安装程序这类应用所设计的。...脚本结构 NSIS脚本(下称nsi脚本)主要包含安装程序属性、页面、区段、函数。 属性 用来定义安装程序的行为和界面风格,这些属性大部分是编译时刻属性,即不能在运行时刻改变。...$EXEDIR 安装程序运行时的位置。(从技术上来说你可以修改改变量,但并不是一个好方法)。 ${NSISDIR} 包含 NSIS 安装目录的一个标记。在编译时会检测到。...$QUICKLAUNCH 在 IE4 活动桌面及以上的快速启动目录。如果快速启动不可用,仅仅返回和 $TEMP 一样。 $DOCUMENTS 文档目录。

    5K60

    windows下使用graalvmspring native将JAVA程序构建为本地可执行的exe程序

    序 使用graalvm aot编译器将java程序编译为本地机器码,大幅提升性能。...随手建一个空springboot项目玩一下启动速度提升肉眼可见,内存占用也大幅下降 执行JAR包 执行AOT编译的exe 环境准备 虚拟机 GraalVM官网 社区版官方下载地址 本文使用...完整安装后配置环境变量 INCLUDE=C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt;C:\Program...AOT编译器 执行命令 gu install native-image 注:gu.exe在graalvm bin目录下,如果无法执行检查虚拟机环境变量是否正确 执行命令检查 gu list...可执行文件 使用spring native构建spring应用 直接使用graal AOT构建spring应用是不行的,因为很多通过反射等动态加载机制调用的类无法追踪,导致ClassNotFound错误无法构建

    2.2K30

    fbs: 让我们更容易的打包和部署python工具

    也欢迎游戏或者影视业内大佬加我微信我们一起交流学习 在我们日常生活中,经常会需要把我们的工具打包成exe了后再分享给其他人使用。...在几秒钟内为您的应用创建一个安装程序,然后将其分发给您的用户在Windows,Mac和Linux上去使用 设置环境 推荐使用python-3.6,其他版本可能会有些Bug 首先我们需要在pycharm中创建一个...然后通过虚拟环境中的pip安装fbs和PyQt5, 注意我们需要指定Qt的版本,其他版本我在测试的时候有些bug pip install fbs PyQt5==5.9.2 你也可以使用PySide2...fbs run 打包APP 我们可以通过下面命令来打包我们的工具 fbs freeze 创建安装程序 我们可以通过下面命令生成我们的安装包, 需要注意的是在Windows上面我们需要安装NSIS...: Windows中的软件部署神器 但此处有个坑点,就是我们需要把nsis的根目录添加到system PATH中 不然会报 FileNotFoundError: fbs could not find

    1.7K10

    mysql和workbench在windows的安装和使用

    在实操大数据之前,我们可以先在本地进行一些小型数据库的操作,对sql和spark进行一些初步了解。本文就先介绍下mysql和workbenck的安装和使用,以及介绍python链接数据库的操作。...后续文章再介绍详细的使用python对库表的sql操作,以及spark计算。...1. mysql安装和使用按照指示操作默认安装,在安装时,MySQL会要求我们设置一个本地登陆账号,账号名一般命为root,端口为3306,自定义一个password即可。...官方下载MySQL Installer:下载后按照步骤安装,安装完成后启动输入密码就可以进入啦~2. workbenck安装和使用官方下载链接:https://dev.mysql.com/downloads.../workbench/按照步骤进行安装,安装完成后启动输入设置的mysql的密码进入,然后创建一个schema创建后,在左侧Schemas的tab就能看见创建的数据库了,然后就可以在里面创建自己的tables

    1.8K131

    pyspark在windows的安装和使用(超详细)

    本文主要介绍在win10上如何安装和使用pyspark,并运行经典wordcount示例,以及分享在运行过程中遇到的问题。 1....这里建议使用conda建新环境进行python和依赖库的安装 注意python版本不要用最新的3.11 否则再后续运行pyspark代码,会遇到问题:tuple index out of range https...hadoop的安装和配置 4.1 hadoop安装 下载链接:https://hadoop.apache.org/releases.html 如果解压遇到权限问题,需要使用管理员身份运行: 4.2...当Hadoop在windows下运行或调用远程Hadoop集群的时候,需要该辅助程序才能运行。...下载对应版本的 winutils(我的hadoop是3.3.4,winutils下载的3.0.0),把下载到的bin文件夹覆盖到Hadoop安装目录的bin文件夹,确保其中含有winutils.exe文件

    7.7K162

    NSIS 脚本,安装时添加防火墙规则

    一方面可以实现较高控制,避免各种脚本的奇异表现和让杀毒软件开森, 另一方面可以比较方便编写代码进行调试以及在后续 OTA 时执行统一的行为 场景 在 Windows 上运行需要访问网络或者提供网络服务的程序...默认情况下,在首次运行程序时,可能会有如下弹窗,只有用户点击运行才能继续使用网络。部分情况,可能是直接被拦截,都没有这个提示。...这里介绍的是,如果在应用安装时(使用 NSIS 打包),自动添加防火墙规则,避免上述问题。...Use netsh advfirewall firewall context - Windows Server | Microsoft Learn 在 NSIS 中集成上述 netsh 命令 在 NSIS...改进 CMD 命令行窗口的闪烁 这里使用的方式是,在 NSIS 中,调用 vbs 脚本,可以做到没有命令行窗口。

    7310

    写完 Electron 后,我好像对 PyQt5 变心了

    安装程序 target: 'nsis', // 这个意思是打出来32 bit + 64 bit的包,但是要注意:这样打包出来的安装包体积比较大...如果为false,则用户必须使用提升的权限重新启动安装程序。...: 其中,setup 0.1.0.exe 就是安装包,其体积仅仅 50 多兆。...运行这个安装包: 安装过程和一般的程序安装无异: 安装完成,可以直接启动: 同时Windows菜单栏新增了程序: 程序安装后的文件夹体积仅100多兆: 同时包含卸载程序: 可以说,这个打包的过程和结果都是很令人满意的...再加上开发阶段的顺畅,现在让我回望使用 PyQt5 开发桌面客户端程序时踩过的大大小小的坑,突然产生了要对 PyQt5 变心了的感觉。

    2.9K10
    领券