2

以下の手順に従って、文字列入力を C# からコンソールに渡します。

  1. pInvoking Kernel32.dll により、AllocConsole() メソッドを使用してコンソールを Visual Studio Process に割り当てます。
  2. Visual Studio (C#) から Perl プロセスを呼び出します。Perl プロセスは、このコンソールに自動的に接続します。(これは私にとっては問題ありません)。
  3. Perl プロセスに Ctrl C シグナルを渡すことで、「のみ」Perl プロセスを強制終了します (Visual Studio では Ctrl C シグナルを抑制します)。
  4. ここで、このコンソールにコマンド (基本的に単純な文字列) を送信したいと思います。

入力文字列をコンソールに渡す方法は何ですか?

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() を正常に呼び出すのを手伝ってくれますか、または代替オプションを提供してくれますか?

どうもありがとう!

4

1 に答える 1