如何在非活动窗口中模拟代码中的键盘事件?

时间:2010-08-29 05:05:33

标签: c# .net windows winapi

如何使用SendWait()向窗口发送击键而不使用SetForegroundWindow()使目标窗口处于活动状态?

以下是MSDN网站上的SendWait示例:http://msdn.microsoft.com/en-us/library/ms171548.aspx

1 个答案:

答案 0 :(得分:1)

this thread。基本上给出了窗口的一些句柄,你需要使用p / invoke并使用WM_KEYDOWN消息调用PostMessage

private const int VK_RETURN = 0x0D;
private const uint WM_KEYDOWN = 0x0100;

[DllImport("user32.dll", SetLastError = true)]
private static extern bool PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);    

public void SendKeysToWindow(IntPtr hWnd)
{
    PostMessage(hWnd, WM_KEYDOWN, new IntPtr(VK_RETURN), IntPtr.Zero);
}

这是虚拟钥匙的the list