Как смоделировать события клавиатуры в коде в неактивном окне? - PullRequest
2 голосов
/ 29 августа 2010

Как использовать SendWait() для отправки нажатий клавиш в окно, не используя SetForegroundWindow(), чтобы сделать целевое окно активным?

Вот пример SendWait на сайте MSDN: http://msdn.microsoft.com/en-us/library/ms171548.aspx

1 Ответ

1 голос
/ 29 августа 2010

См. эту тему .В основном, учитывая некоторый дескриптор окна, вам нужно использовать p / invoke и вызвать PostMessage с сообщением WM_KEYDOWN:

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);
}

Вот список Виртуальные ключи.

...