最新消息:

ExecDos让NSIS执行cmd程序去掉黑框隐藏黑框

nsis 永恒心锁 4199浏览 0评论
/*
ExecDos让NSIS执行cmd程序去掉黑框隐藏黑框
ExecDos在执行控制台程序时创建一个隐藏IO的子进程.相对于nsExec插件ExecDos有一些自己的特点:
在执行时可以调用stdin标准输入进行消息通信,比如你要输入用户名和注册码之类的.
即可同步执行也可以异步执行进程.ExecDos不必在Section段时执行,你可以把它放到.onInit函数段里执行.
Execdos支持多线程的,意味着你可以在同时执行多个程序.
ASYNC:异步执行,不用等到程序执行完就可以执行下一步操作.
TIMEOUT:等待执行时间,以毫秒为单位.
TOSTACK:可以获取执行程序的输入信息日志.
DETAILED:将信息输出到DetailedView信息框里.
TOWINDOW:将信息附加到指定窗口制件,支持Edit,RichEdit,ListView和ListBox.
TOFUNC:将信息传递给函数,你可以自行处理消息内容.
DISABLEFSR:不允许64位系统的重定向.
ExecDos::wait:等待程序执行完毕.
ExecDos::isdone:获得进程执行状态,1程序执行完毕,0程序正在运行当中,-1程序出错了.要配合/ASYNC异步参数一起使用.
*/
!AddPluginDir "../../Plugins"
; Base definition
!define APP_NAME "ExecDos"
!define DOS_APP consApp.exe
; General Attributes
Name "${APP_NAME}永恒心锁"
OutFile "${APP_NAME}.exe"
; Interface Settings
!include "MUI2.nsh"
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "SimpChinese"
Function LogFunction
IntOp $1 $1 + 1
 Pop $0
 MessageBox MB_OK "$1:$0"
FunctionEnd
Section "永恒心锁"
 #异步执行,将信息输出到DetailedView信息框里,等待时间6秒,控制台程序,用户名和密码
 ExecDos::exec /NOUNLOAD /ASYNC /DETAILED /TIMEOUT=6000 "$EXEDIRconsApp.exe" "test_login$ntest_pwd$n"
 Pop $R9
 ExecDos::isdone /NOUNLOAD $R9
 Pop $R1
 DetailPrint "程序执行状态返回值isdone$R1"
 Sleep 3000
 ExecDos::isdone /NOUNLOAD $R9
 Pop $R1
 DetailPrint "暂停5秒后程序执行状态返回值isdone$R1"
 ExecDos::wait $R9
 Pop $R7
 DetailPrint "程序的退出返回值是:$R7"
 #将信息传递到函数中
 GetFunctionAddress $0 LogFunction
 ExecDos::exec /ASYNC /TOFUNC /TIMEOUT=5000 "$EXEDIRconsApp.exe" "test_login$ntest_pwd$n" $0
SectionEnd
免责声明:根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。丨本站为个人博客非盈利性站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途。丨本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权BY-NC-SA协议进行授权

转载请注明:永恒心锁-分享互联网 » ExecDos让NSIS执行cmd程序去掉黑框隐藏黑框

您必须 登录 才能发表评论!