Я использовал SendKeys.Send()
& SendKeys.SendWait()
для отправки ключей в программу переднего плана (программу, отличную от написанной в приложении).
Я пытался отправить непрерывное нажатие клавиши, многократно отправляя одно и то жеклавиша с определенной задержкой между ними, но эффект не был таким же, как непрерывное нажатие клавиши в этом приложении.
Мой вопрос: Как я могу отправить непрерывное нажатие клавиши в программу?Эффект от этого нажатия клавиши должен быть таким же, как нажатие на себя, чтобы непрерывно набирать ключ в приложении.
РЕДАКТИРОВАНИЕ РЕШЕНИЯ
Решением было вызвать метод:
[DllImport("User32.dll")]
static extern int SendMessage(IntPtr hWnd, uint wMsg, UIntPtr wParam, IntPtr lParam);
с параметрами, полученными из:
public System.Diagnostics.Process [] p = System.Diagnostics.Process.GetProcessesByName ("process");
p [0] .MainWindowHandle равен hWnd
и использует Spy в окне:

, щелкнув правой кнопкой мыши строку сообщения в Spyпоказывает wMsg , wParam и lParam (все 3 в шестнадцатеричном формате)
SendMessage (p [0] .MainWindowHandle, (uint) 0x0100, (UIntPtr) 0x00000041, (IntPtr) (0x001E0001));
Посылая только одно сообщение WM_KEYDOWN, эффект заключается в непрерывном нажатии клавиши.Чтобы остановить программу, работающую, когда клавиша постоянно нажата, мне нужно нажать эту клавишу на клавиатуре и отпустить ее, чтобы сгенерировать WM_KEYUP.Отправка WM_KEYUP в коде дает System.OverFlow «Арифметическая операция, приведшая к переполнению».исключение.Любая идея, почему это может произойти?
Спасибо за ваши ответы: Ation и takrl