我想向 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 只有一个窗口,没有子窗口,这个过程适用于记事本和资源管理器。我发送到 SendMessage 方法的其他参数是键盘通知 keydown的代码和向下箭头键的代码。
所以我的问题是,我怎样才能修改我的代码以将按键发送到 DOSBOX,或者有什么不同的方法可以实现这一点?