【发布时间】:2012-07-27 08:53:01
【问题描述】:
我能知道Exec、ExecWait、ExecShell、nsExec::Exec、nsExec::ExecToLog,nsExec::ExecToStack、ExecDos 和ExecCmd 之间的区别是什么,如何时使用?
我已经发布了我知道的各种执行调用。我正在尝试制作一个全面的列表,以便对未来的访问者有所帮助..
Exec:简单地执行被调用的字符串,无论是应用程序、控制台还是文件。ExecWait:像Exec一样执行,但要等到进程退出。ExecShell:它是干什么用的?nsExec::Exec:就像Exec或ExecWait,但仅适用于命令提示符,也无需打开控制台窗口。我不确定它是否等待进程退出。nsExec::Exec是否等待子进程退出?nsExec::ExecToLog:The documentation says ExecToLog类似于普通的nsExec,但它输出到日志窗口。 这是什么意思,什么是日志窗口?nsExec::ExecToStack:文档说ExecToStack类似于普通的nsExec,但它将输出推送到堆栈。我明白了。-
ExecDos: 与nsExec::ExecToStack相同,但额外(不是?)一个。接受作为运行应用程序的标准输入的字符串参数。
b.可在同步/异步模式下工作。
c。它适用于部分 - 用于 .onInit 签出。
-
ExecCmd:与ExecDos相同,但不需要这些ExpandEnvStrings $3 %COMSPEC% ExecDos::exec /C零件。 我说的对吗?
【问题讨论】:
-
你也可以包含Timeout::ExecTimeout,如果需要太长时间才能完成,需要杀死子进程。
-
@FranciscoR 随意编辑问题并添加它(连同其目的)。我对你提到的那个不太了解。
-
实际上,每个命令应该做什么的解释属于答案,不在问题本身。 “我对么?” = 糟糕的 StackOverflow 问题。我很想将这些位移动到答案中,但已经有一个答案移动会无效。
-
@MooingDuck 问题是,如果我问这样的问题,它很可能会被关闭,因为这个问题看起来过于宽泛且负载过重且没有研究工作。我想展示自己付出的一些努力,同时在一个地方对所有执行命令进行了完整的解释。当然有人可以把它们都作为一个答案,那也很好。
标签: nsis shellexecute