我按照以下步骤将字符串输入从 C# 传递到控制台:
- 我通过 pInvoking Kernel32.dll 使用 AllocConsole() 方法将控制台分配给 Visual Studio 进程。
- 我从 Visual Studio (C#) 调用 Perl 进程。Perl 进程自动附加到此控制台。(这对我来说没问题)。
- 我通过将 Ctrl C 信号传递给它来杀死“仅”Perl 进程。(我抑制了 Visual Studio 的 Ctrl C 信号)
- 现在我想向这个控制台发送一个命令(基本上是一个简单的字符串)。
将输入字符串传递到控制台的方法是什么?
我试图通过 pInvoking Kernel32.dll 使用 writeConsoleInput(),但我被困在这个函数的参数上。函数签名是:
[DllImport("kernel32", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool WriteConsoleInput(IntPtr hConsoleInput,
[Out] INPUT_RECORD[] lpBuffer,
int nLength,
out int lpNumberOfEventsWritten);
有人可以帮助我成功调用 WriteConsoleInput() 或提供替代选项。
非常感谢!