[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. Я знаю, что процесс получает сообщение, потому что я смотрю сообщения со шпионом ++, и я отправляю те же wParam и lParams, которые вызывают, когда я сам нажимаю кнопку на окне. Я попытался использовать SendKeys.sendwait вместе с setforeground, но та же проблема возникает, когда одно и то же сообщение появляется в spy ++, но активного окна в нем нет.Windows PostMessage Issue C#
«Обработайте» ручку окна? – Jumpei
О, извините, процесс - это IntPtr, захваченный из Processes.MainWindowHandle. – vifs
Итак, разрешено? :) – Jumpei