【问题标题】:C# runs a lua script which calls cmd. How to hide the cmd window?C# 运行一个调用 cmd 的 lua 脚本。如何隐藏cmd窗口?
【发布时间】:2018-11-04 09:46:58
【问题描述】:

卢阿:

function test()
    local t = io.popen("cd")
    for line in t:lines() do
        print(line)
    end
    t:close()
end

C#:

using LuaInterface;

public void Lua_Test()
{
    Lua lua = new Lua();
    lua.DoFile(@"lua\test.lua");

    var Lua_Test = lua.GetFunction("test");

    Lua_Test.Call();
}

当我在 SciTE 中运行 lua 时,不会显示 cmd 窗口。但是当 C# 调用 lua 时,会出现 cmd 窗口(并快速关闭)。有什么办法可以隐藏 cmd 窗口或避免它出现?

顺便说一下,我不想用VBScript的方式重新打开bat文件。

io.popen 和 os.execute 都会创建一个 cmd 窗口,我想解决这两种情况。

编辑: 好吧,我知道 lua 使用 C 系统函数,所以通常会出现 cmd 窗口。但是为什么在 SciTE 中运行 lua 时窗口不显示? (好吧,我想通了,那就是SciTE已经打开了一个cmd窗口)

【问题讨论】:

  • 看看这个link。这可能会有所帮助。

标签: c# cmd lua


【解决方案1】:

Luacom WScript solution

好吧,我决定使用上面的解决方案,比在我的情况下用 bat 脚本编写 vbs 更好,因为我的 C# 会多次调用 lua。与vbs不同,该方法只会创建一次shell,并且可以多次调用Run方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 2010-11-08
    • 2022-11-28
    • 1970-01-01
    • 2018-01-14
    • 2021-07-12
    相关资源
    最近更新 更多