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();
}
Когда я запускаю lua в SciTE, окно cmd не отображается. Но окно cmd появится (и быстро закроется), когда lua будет вызван C#. Есть ли способ скрыть окно cmd или избежать его появления?
Кстати, я не хочу использовать способ VBScript для повторного открытия файла bat.
Оба io.popen и os.execute создадут окно cmd, я хочу решить оба случая.
Редактировать: Ну, я знаю, что lua использует системную функцию C, поэтому обычно появляется окно cmd. Но почему окно не отображается при запуске lua в SciTE? (Хорошо, я понял, то есть SciTE уже открыла окно cmd)





Что ж, я решил использовать вышеприведенное решение, лучше, чем писать vbs в сценарии bat в моем случае, поскольку мой C# будет вызывать lua много раз. В отличие от vbs, этот метод создает оболочку только один раз и может вызывать метод Run много раз.
взгляните на этот ссылка на сайт. Это может помочь.