【发布时间】:2018-06-04 18:26:09
【问题描述】:
第一次在这里提问所以希望它符合礼仪。 有谁知道如何使用C#
process.UseShellExecute = false;
什么时候在 Unity3D 中?使用它设置为 false 会导致 exe 崩溃。但是将其设置为 true 会禁用发送 writeline 命令的能力。欢迎提出想法、建议和解决方案。感谢大家!下面的代码示例:
ProcessStartInfo processinfo = new
ProcessStartInfo("C:/ConsoleExample/bin/Debug/ConsoleExample.exe");
processinfo.RedirectStandardOutput = false;
processinfo.RedirectStandardError = false;
processinfo.RedirectStandardInput = true;
processinfo.UseShellExecute = false; //<----Causes program to crash exe when launched, but is required for write console key.
processinfo.CreateNoWindow = false;
Process.Start(processinfo);
Thread.Sleep(1000);
//Write text to console exe file from unity as a command.
processinfo.StandardInput.Write(ConsoleKey.Escape);
【问题讨论】:
-
崩溃或冻结 Unity?这是两种不同的东西。顺便说一句,不要在主线程上使用
Thread.Sleep(1000) -
它在 Process.Start(processinfo); 行上使 exe 文件崩溃;换句话说,exe 将无法正常启动。 Unity 很好,不会崩溃或失败。
-
只需使用
Process而不是ProcessStartInfo看看会发生什么 -
好的。现在就试试吧。
-
如果我将
Process.Start(processinfo);更改为Process.Start(Process);会出现调试错误:进程是一种类型,在给定的上下文中无效
标签: unity3d process shellexecute console.writeline