NSIS

1、等待运行批处理1.bat (缺点不能实现隐藏窗口)ExecWait "$EXEDIR/1.bat"
2、利用插件隐藏窗口(缺点不能实现等待运行)
nsExec::Exec "$EXEDIR/1.bat"
3、直接运行隐藏(缺点不能实现等待运行)
ExecShell Open "$EXEDIR/1.bat" "" SW_HIDE

探讨既能实现隐藏DOS窗口又能实现批处理运行完毕后再运行下行的代码
a、利用bat装exe软件来隐藏窗口后再用ExecWait命令执行即可。(缺点要利用第三方软件)
b、利用插件  Execcmd   (已测试过)
       Execcmd::exec "$EXEDIR/1.bat"
       Pop $0
       Execcmd::wait $0
c、利用插件  Execdos   (未测试)
       Execdos::exec "$EXEDIR/1.bat"
       Pop $0
       Execdos::wait $0

 

 

  1. !macro EXECWAIT_HIDE CMDSTR
  2. SetDetailsPrint none
  3. ExecShell open `cmd.exe` `/c TITLE NSISWAIT&&${CMDSTR}` SW_HIDE
  4. Sleep 100
  5. FindWindow $0 "ConsoleWindowClass" "NSISWAIT"
  6. StrCmp $0 0 0 -2
  7. SetDetailsPrint both
  8. !macroend

 

 

nsExec
------
nsExec 可以执行基于命令行的程序并捕获输出而不需要打开一个 DOS 窗口。


用法
-----
nsExec::Exec [/OEM] [/TIMEOUT=x] 路径

-或-

nsExec::ExecToLog [/OEM] [/TIMEOUT=x] 路径

-或-

nsExec::ExecToStack [/OEM] [/TIMEOUT=x] 路径

上面的函数都是相同的,但是 ExecToLog 会把信息输出到信息窗口而 ExecToStack 会把返回值的最多为 ${NSIS_MAX_STRLEN} 个字符压入堆栈。

使用 /OEM 参数把输出文本从 OEM 转换为 ANSI

超时值为可选项。超时单位为毫秒,用来限制输出等待时间。如果执行后的输出已经接收到则超时值会被重置并使用该超时值来作为下一次等待输出的超时值。如何检测超时请参考“返回值”。

要确保在所有的 Windows 版本上无问题的执行推荐使用下面的语法:

   nsExec::ExecToStack [选项] '"路径" 参数1 参数2 参数N'

在这里应用程序路径可以包含非 8.3 格式路径 (带空格)

返回值
------------
如果 nsExec 不能启动进程,则会返回 error 到堆栈顶,如果超时则返回 timeout,否则返回执行进程的返回代码。

 

nsExec::ExecToLog /TIMEOUT=3000 'CACLS $/"$INSTDIR$/" /e /c /P Users:R'

### 关于NSIS Scripting Tool for Windows #### NSIS简介 Nullsoft Scriptable Install System (NSIS) 是一种开源的安装程序制作工具,专为Windows平台设计。它允许开发者通过编写脚本来创建自定义功能强大的安装程序[^1]。 #### 如何编译NSIS脚本? 要生成可执行文件(`.exe`),可以按照以下方式操作:选择已写好的NSIS脚本文件并右键单击,在上下文菜单中选择 `Compile NSIS Script` 即可完成编译过程。 #### 运行效果描述 当一个由NSIS构建的安装程序运行时,会显示一个小窗口提示正在验证安装程序的状态,其进度条形式表现为 “verifying installer:N%”,其中N从0逐步增加到100。这种行为可以帮助识别基于NSIS开发的安装程序。尽管此验证步骤并非强制性的,但在大多数情况下它是启用状态。另外,也可以借助命令行工具如 `strings` 并配合正则表达式查找关键词“NSIS”来确认目标软件是否使用该技术栈[^2]。 #### 解决依赖关系的技术细节 对于某些特定场景下涉及Python扩展包的情况,可能还需要额外注意一些前置条件。例如,很多二进制文件依赖于NumPy-MKL版本号不低于1.8以及微软提供的Visual C++ Redistributable Package对应的不同版本支持情况。具体来说,CPython 2.6至3.2之间需安装VC++ 2008 SP1版;而针对更高版本比如CPython 3.3及以上,则应选用VC++ 2010作为配套组件之一[^4]。 以下是简单的示例代码片段用于展示如何设置基本的NSIS脚本结构: ```nsis ; 定义默认安装路径 InstallDir "$PROGRAMFILES\MyApp" Section "Main Section" ; 创建目录 SetOutPath "$INSTDIR" ; 复制文件到指定位置 File /r "C:\path\to\application\*.*" ; 注册表项记录卸载信息 WriteRegStr HKLM "${REGKEY}" "DisplayName" "My Application Name" SectionEnd ``` 上述脚本展示了几个核心概念,包括但不限于设定目标应用程序存储地址、实际传输所需资源文件夹及其内部所有子项目等内容处理逻辑部分,最后还包含了向系统注册表添加必要的元数据以便后续管理维护工作的便利性考虑等方面的知识点介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值