C#运行一个调用cmd的lua脚本。如何隐藏cmd窗口?

时间:2018-05-25 04:38:56

标签: c# cmd lua

的Lua:

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窗口。但是为什么当Lua在SciTE中运行时窗口不显示? (好吧,我想通了,那就是SciTE已经打开了一个cmd窗口)

1 个答案:

答案 0 :(得分:0)

Luacom WScript solution

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