windows - 在 Windows 中使用 lua os.execute 启动程序,无需 CMD 闪现

标签 windows lua command-prompt

我很高兴使用 Lua 在 Windows 系统中启动一个程序

strProgram = '"C:\\Program Files\\Ps Pad\\PSPad.exe"'
strCmd = 'start "" '..strProgram
os.execute(strCmd)

这可以正常工作,启动程序并完成脚本。 不管它如何在不到一秒的时间里闪现一个命令窗口,有没有人有办法从 Lua 启动一个程序。

最佳答案

Lua的os.execute命令基于C标准库“shell”函数。在 Windows 中,此函数将始终创建一个命令窗口,并且始终会停止当前进程,直到窗口完成。后者也发生在 Linux 中。

最终没有办法解决这个问题。不通过 Lua 标准 API。由于Lua需要轻量级和平台无关性,因此API不允许使用依赖于操作系统的原生API。

您最好的选择是使用 Lua Ex-Api模块。它实际上是废弃软件,您可能需要修补一些编译器问题(我猜 Windows 端口不是他们的首要任务)。但这是产生进程的相当好的方法。您可以选择等待它自己完成,或者让它们并行运行。并且它不会弹出命令提示符窗口,除非应用程序本身使用一个命令提示符窗口。

关于windows - 在 Windows 中使用 lua os.execute 启动程序,无需 CMD 闪现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52790881/

相关文章:

windows - FFMPEG 帧到 DirectX 表面硬件加速

android - 跨平台随机再现性

types - Lua 内部是否有可访问的默认类型的表或枚举?

lua - 在 Lua 中重新定义变量的类型

windows - 同一台机器上的多个 Bitbucket SSH 帐户

windows - WM_PAINT 和 DX12

utf-8 - 将代码点转换为 UTF-8 的更优雅、更简单的方法

Python Chromedriver 使用浏览器打开命令提示符

visual-studio - 在Visual Studio中执行dos命令的交互式窗口