[DllImport("user32.dll")]
public static extern IntPtr PostMessage(IntPtr hWnd, uint Msg, int wParam, IntPtr lParam);
public void keyPress(){
const uint WM_KEYDOWN = 0x100;
const uint WM_KEYUP = 0x0101;
PostMessage(Process, WM_KEYDOWN, (int)Keys.Q, (IntPtr)Convert.ToInt32("00100001", 16));
Thread.Sleep(1000);
PostMessage(Process, WM_KEYUP, (int)Keys.Q, (IntPtr)Convert.ToInt32("C0100001", 16));
}
Я пытаюсь вызвать PostMessage с помощью Keydown и keyup. Я знаю, что процесс получает сообщение, потому что я просматриваю сообщения с помощью spy++ и отправляю те же wParam и lParams, которые вызываются, когда я сам нажимаю кнопку в окне. Я пытался использовать SendKeys.sendwait вместе с setforeground, но та же проблема возникает, когда одно и то же сообщение появляется в spy++, но в окне нет активного ответа.
Process
дескриптором окна? - person Jumpei   schedule 19.02.2014