以下の手順に従って、文字列入力を C# からコンソールに渡します。
- pInvoking Kernel32.dll により、AllocConsole() メソッドを使用してコンソールを Visual Studio Process に割り当てます。
- Visual Studio (C#) から Perl プロセスを呼び出します。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() を正常に呼び出すのを手伝ってくれますか、または代替オプションを提供してくれますか?
どうもありがとう!