gpt4 book ai didi

nsis - Exec vs ExecWait vs ExecShell vs nsExec::Exec vs nsExec::ExecToLog vs nsExec::ExecToStack vs ExecDos vs ExeCmd

转载 作者:行者123 更新时间:2023-12-01 19:05:36 37 4
gpt4 key购买 nike

我可以知道每个 Exec 之间有什么区别吗? , ExecWait , ExecShell , nsExec::Exec , nsExec::ExecToLog, nsExec::ExecToStack , ExecDosExecCmd ,比如什么时候使用哪个?

我已经发布了我所知道的各种执行调用。我正在尝试制作一个全面的列表,以便它可以帮助 future 的访问者..

  1. Exec :简单地执行被调用的字符串,无论是某个应用程序、控制台还是文件。

  2. ExecWait :执行类似 Exec但要等到进程退出。

  3. ExecShell :它有什么用?

  4. nsExec::Exec :就像 ExecExecWait但仅适用于命令提示符,并且也无需打开控制台窗口。我不确定它是否等待进程退出。 nsExec::Exec等待子进程退出?

  5. nsExec::ExecToLog :The documentation says ExecToLog类似于普通 nsExec但它输出到日志窗口。 这是什么意思,什么是日志窗口?

  6. nsExec::ExecToStack :文档说 ExecToStack类似于普通 nsExec但它将输出推送到堆栈。我明白了。

  7. ExecDos :与 nsExec::ExecToStack 相同但它另外(不是吗?)

    a.接受字符串参数作为运行应用程序的标准输入。

    b.在同步/异步模式下工作。

    c.它在节外工作 - 用于 .onInit checkout 。

  8. ExecCmd :与 ExecDos 相同但它不需要这些

    ExpandEnvStrings $3 %COMSPEC% 
    ExecDos::exec /C

    零件。 我说得对吗?

最佳答案

1) 2) 3)

ExecExecWait 使用 CreateProcess在内部,只能启动程序和批处理文件。

ExecShell 使用 ShellExecute这意味着它还可以启动任何已注册的文件类型(.txt .chm 等)和 URL。如果您正在启动的程序需要使用 UAC 进行提升,也应该使用它。

4)

nsExec 重定向 stdout,因此子进程执行时控制台窗口不可见。是的,它在等待。

5)

instfiles 页面上的日志窗口。

7)

是的,ExecDos 和 ExecCmd 都是 nsExec 的更高级版本。

8)

正确

关于nsis - Exec vs ExecWait vs ExecShell vs nsExec::Exec vs nsExec::ExecToLog vs nsExec::ExecToStack vs ExecDos vs ExeCmd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11708779/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com