C # e SendMessage (keys) não estão funcionando
Eu tentei enviar uma chave para um aplicativo. Para um teste fácil, usei o bloco de notas. É assim que o código se parece:
[DllImport("USER32.DLL", EntryPoint = "SendMessageW", SetLastError = true,
CharSet = CharSet.Unicode, ExactSpelling = true,
CallingConvention = CallingConvention.StdCall)]
public static extern bool SendMessage(IntPtr hwnd, int Msg, int wParam, int lParam);
const int WM_KEYDOWN = 0x100;
const int WM_a = 0x41;
public void Press()
{
Process[] p = Process.GetProcessesByName("notepad");
IntPtr pHandle = p[0].MainWindowHandle;
SendMessage(pHandle, WM_KEYDOWN, WM_a, 0);
}
Mas nada acontece.
Meu principal objetivo é enviar a chave para um aplicativo elevado, mas ficaria feliz em enviá-lo ao bloco de notas primeiro. Quero trabalhar com o SendMessage, porque quero controlar por quanto tempo pressiono um botão e também não quero ter o outro aplicativo em primeiro plano. Essa é a razão pela qual não estou trabalhando com as SendKeys.