単一のキーボードコマンド(下矢印)をDOSBOXに送信し、続いてC#で処理コードを実行し、ループします。私の目的は、DOSプログラムの実行を自動化することです。
私が持っているコードはメモ帳とWindowsエクスプローラーで正常に機能しますが、DOSBOXでは機能しません。
これは私の(簡略化された)コードです:
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int wMsg, IntPtr wParam, IntPtr lParam);
static void Main(string[] args)
{
Console.ReadKey();
System.Threading.Thread.Sleep(2000); //to give me time to set focus to the other window
SendMessage(new IntPtr(0x001301CE), 0x0100, new IntPtr(0x28), new IntPtr(0));
}
WinSpy ++を使用してウィンドウのハンドルを取得しましたが、DOSBOXにはウィンドウが1つしかなく、子ウィンドウはありません。このプロセスは、メモ帳とエクスプローラーで正常に機能します。SendMessageメソッドに送信している他のパラメータは、キーボード通知キーダウンのコードと下矢印キーのコードです。
だから私の質問は、DOSBOXにキー押下を送信するようにコードを変更するにはどうすればよいですか、またはこれを達成するための別の方法はありますか?