我希望能够向DOSBOX发送一个单一的键盘命令(下箭头),然后在C#中执行一些处理代码,最后循环执行。我的目的是自动化运行DOS程序。
我已经编写了一段代码,在记事本和Windows资源管理器上成功运行,但无法在DOSBOX上运行。
以下是我简化后的代码:
我使用WinSpy++获取了窗口的句柄,DOSBOX只有一个窗口且没有子窗口,这个过程对于记事本和资源管理器运行良好。我将发送给SendMessage方法的其他参数是键盘通知按下键和向下箭头键的代码。
所以我的问题是,我该如何修改我的代码以发送按键到DOSBOX,或者是否有其他方法可以实现这一点?
我已经编写了一段代码,在记事本和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方法的其他参数是键盘通知按下键和向下箭头键的代码。
所以我的问题是,我该如何修改我的代码以发送按键到DOSBOX,或者是否有其他方法可以实现这一点?
System.Windows.Forms.SendKeys.SendWait()
呢? - AngryHacker